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

oce*_*800 5 python nlp

所以我有一些文本数据被凌乱地解析,因此我得到的名称与实际数据混合在一起。是否有任何类型的包/库可以帮助识别单词是否是名称?(在这种情况下,我将假设以美国/西方/欧洲为中心的名称)

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

zbu*_*548 5

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
Run Code Online (Sandbox Code Playgroud)

通过使用 nltk 改进人名提取