Python 如何识别字符串是否为人名?

Python 如何识别字符串是否为人名?,python,nlp,Python,Nlp,所以我有一些文本数据,它们被杂乱无章地解析,因此我把名字和实际数据混在了一起。是否有任何类型的包/库可以帮助识别单词是否是名称?(在这种情况下,我将采用以美国/西方/欧洲为中心的名称) 否则,什么是标记此的好方法?也许可以在人名语料库上训练一个模型,并为数据集中的每个单词分配一个分类?只是不确定解决这个问题的最佳方法/适合哪种模型,或者是否已经存在解决方案 import nltk from nltk.tag.stanford import NERTagger st = NERTagger('st

所以我有一些文本数据,它们被杂乱无章地解析,因此我把名字和实际数据混在了一起。是否有任何类型的包/库可以帮助识别单词是否是名称?(在这种情况下,我将采用以美国/西方/欧洲为中心的名称)

否则,什么是标记此的好方法?也许可以在人名语料库上训练一个模型,并为数据集中的每个单词分配一个分类?只是不确定解决这个问题的最佳方法/适合哪种模型,或者是否已经存在解决方案

import nltk
from nltk.tag.stanford import NERTagger
st = NERTagger('stanford-ner/all.3class.distsim.crf.ser.gz', 'stanford-ner/stanford-ner.jar')
text = """YOUR TEXT GOES HERE"""

for sent in nltk.sent_tokenize(text):
    tokens = nltk.tokenize.word_tokenize(sent)
    tags = st.tag(tokens)
    for tag in tags:
        if tag[1]=='PERSON': print tag

通过

您可以创建一个包含每个名称列表的文本文件,并循环浏览您的数据?效率不高,但仍然…巴黎、希尔顿和布鲁克林的名字、品牌或地方也是如此?胡佛,熊。。。祝你好运。@barny说得好,但我只是想在我的数据集中寻求全面的改进,在这种情况下,我不需要完美的结果,所以这样的例子将在可接受的误差范围内。你是否尝试过简单地寻找大写的词?哦,我没有想到使用
NER
,这可能是一种方法,谢谢