Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 在字符串中标识名称_Search_Annotations_Nlp_Chunking - Fatal编程技术网

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人名分析器中使用大写支持,链接: