【发布时间】:2018-08-09 06:14:19
【问题描述】:
我正在尝试使用 python NLTK 从给定的德国地址中提取公司名称。 这是我使用的代码,
import nltk
address="CompanyName GmbH * Keltenstr. 16 * 123456 Kippenheim * Deutschland"
tokens = nltk.word_tokenize(address)
textTokens = nltk.Text(tokens)
POStagList = nltk.pos_tag(textTokens)
print(POStagList)
grammar = """
NP:
{<NN.?|JJ|FW>GmbH}"""
cp = nltk.RegexpParser(grammar)
result = cp.parse(POStagList)
for subtree in result.subtrees(filter=lambda t: t.label() == 'NP'):
print("NP Subtree:", subtree)
我需要输出:CompanyName GmbH
有时可能是 corp 或 Inc. 或 llc 等而不是 GmbH 等
如何解决?
如何在语法中直接使用字符串值和转义序列字符?
【问题讨论】:
-
有效吗?究竟是什么问题?
-
你不能简单地将字符串拆分为
*字符并使用第一项吗? -
它不工作。我需要正确的语法才能获得结果“CompanyName GmbH”
-
您能解释一下如何它不起作用吗?你得到什么而不是
CompanyName GmbH?有错误信息吗? -
我需要使用语法得到结果。对于另一种地址格式,我需要更多语法
标签: regex python-3.x nltk