如何从文本中提取租金价格?
How to extract rentprice from text?
对于房地产对象,我试图从描述文本中提取租金价格。
例如:
"Für maximalen Komfort sorgt ein Concierge Service, der den Bewohnern im Haus zur Verfügung steht. <br/>Die Wohnung ist seit dem 15.10.2002 zu einer monatlichen Nettokaltmiete in Höhe von 546,25 EUR vermietet. Es bestehen weder Sperrfrist noch Vorkaufsrecht."
这里是重点
Nettokaltmiete in Höhe von 546,25 EUR
提取该信息的简单方法是什么?
注意:EUR 中通常还有其他信息 - 因此我们不能只搜索 EUR。
我的一个想法是:
拆分句子。检查一个句子是否包含 EUR 或 €。检查句子是否也说了一些关于 Miete/Jahresmiete 的东西,然后得到下一个最接近的数字 €.
想知道有没有更优雅的方法。你对此有何看法? :)
尝试使用依赖解析。
我写了这个应该让你开始的例子:
import spacy
nlp = spacy.load("de_core_news_sm")
s = "Die Wohnung ist seit dem 15.10.2002 zu einer monatlichen Nettokaltmiete in Höhe von 546,25 EUR vermietet."
doc = nlp(s)
try:
l = [t for t in doc if 'miete' in t.text.lower() and t.pos_ == "NOUN"]
if l:
rent = l[0]
subtree = [t for t in rent.subtree]
euro = [t for t in subtree if t.text == "EUR" or t.text == "€"]
if euro:
price = euro[0].nbor(-1)
if price.like_num == True:
print(rent, ':', price)
except:
pass
输出:
Nettokaltmiete : 546,25
对于房地产对象,我试图从描述文本中提取租金价格。
例如:
"Für maximalen Komfort sorgt ein Concierge Service, der den Bewohnern im Haus zur Verfügung steht. <br/>Die Wohnung ist seit dem 15.10.2002 zu einer monatlichen Nettokaltmiete in Höhe von 546,25 EUR vermietet. Es bestehen weder Sperrfrist noch Vorkaufsrecht."
这里是重点
Nettokaltmiete in Höhe von 546,25 EUR
提取该信息的简单方法是什么?
注意:EUR 中通常还有其他信息 - 因此我们不能只搜索 EUR。
我的一个想法是:
拆分句子。检查一个句子是否包含 EUR 或 €。检查句子是否也说了一些关于 Miete/Jahresmiete 的东西,然后得到下一个最接近的数字 €.
想知道有没有更优雅的方法。你对此有何看法? :)
尝试使用依赖解析。 我写了这个应该让你开始的例子:
import spacy
nlp = spacy.load("de_core_news_sm")
s = "Die Wohnung ist seit dem 15.10.2002 zu einer monatlichen Nettokaltmiete in Höhe von 546,25 EUR vermietet."
doc = nlp(s)
try:
l = [t for t in doc if 'miete' in t.text.lower() and t.pos_ == "NOUN"]
if l:
rent = l[0]
subtree = [t for t in rent.subtree]
euro = [t for t in subtree if t.text == "EUR" or t.text == "€"]
if euro:
price = euro[0].nbor(-1)
if price.like_num == True:
print(rent, ':', price)
except:
pass
输出:
Nettokaltmiete : 546,25