Search 在字符串中标识名称
我想找到一个很好的方法,在我的网站上的用户搜索查询中识别人名、地名等。例如,如果用户问“乔治·华盛顿多大了”,我需要能够从预定义的列表中知道乔治·华盛顿是一个人 有些列表是全局的,有些是特定于用户的。例如,如果他们问“约翰·史密斯多大岁数”,我可能只想确定我的合伙人是哪个约翰·史密斯——如果他不是我的合伙人,我就不想确定他是谁Search 在字符串中标识名称,search,annotations,nlp,chunking,Search,Annotations,Nlp,Chunking,我想找到一个很好的方法,在我的网站上的用户搜索查询中识别人名、地名等。例如,如果用户问“乔治·华盛顿多大了”,我需要能够从预定义的列表中知道乔治·华盛顿是一个人 有些列表是全局的,有些是特定于用户的。例如,如果他们问“约翰·史密斯多大岁数”,我可能只想确定我的合伙人是哪个约翰·史密斯——如果他不是我的合伙人,我就不想确定他是谁 是否有任何NLP库或这些列表的爬网可以利用Soundx、成熟NLP、拼写错误等功能?我可以手写,但我更愿意利用成熟的东西。谢谢 您需要的是命名实体识别 斯坦福NLP是最好
是否有任何NLP库或这些列表的爬网可以利用Soundx、成熟NLP、拼写错误等功能?我可以手写,但我更愿意利用成熟的东西。谢谢 您需要的是
命名实体识别
斯坦福NLP是最好的软件之一:
(用Java编写)
如果您在另一个平台上,那么Ruby和Python中有很好的开源项目。搜索“命名实体识别”。您正在查找的特定自然语言处理(NLP)任务称为
命名实体识别(NER)
除了斯坦福大学的(java),从自然语言工具包()中选择的流行python经常被用作NER任务的基线
您可以尝试安装NLTK,然后执行以下代码:
>>> from nltk.tokenize import word_tokenize
>>> from nltk.tag import pos_tag
>>> from nltk.chunk import ne_chunk
>>> sentence = "How old is John Smith?"
>>> ne_chunk(pos_tag(word_tokenize(sentence)))
Tree('S', [('How', 'WRB'), ('old', 'JJ'), ('is', 'VBZ'), Tree('PERSON', [('John', 'NNP'), ('Smith', 'NNP')]), ('?', '.')])
这只能找到以大写字母开头的名称,我们还能找到以小写字母开头的名称吗?@GEITPL_Dev,您可以在Python人名分析器中使用大写支持,链接: