python文本处理: identify nouns from individual words

标签 python text nlp nltk pos-tagger

我有一个单词列表,只想保留名词。

这不是 Extracting all Nouns from a text file using nltk 的重复项

在链接的问题中处理一段文本。接受的答案提出了一个标记器。我知道标记文本的不同选项(nlkt、textblob、spacy),但我无法使用它们,因为我的数据不包含句子。我只有单个单词的列表:

would
research
part
technologies
size
articles
analyzes
line

nltk 有多种语料库可供选择。我发现 verbnet 包含完整的动词列表。但到目前为止我还没有看到任何类似的名词。有没有类似字典的东西,我可以在其中查找单词是否是名词、动词、形容词等?

这可能可以通过一些在线服务来完成。例如,微软翻译在其响应中返回大量信息:https://learn.microsoft.com/en-us/azure/cognitive-services/translator/reference/v3-0-dictionary-lookup?tabs=curl 但这是一项付费服务​​。我更喜欢 python 包。

关于单词的歧义:理想情况下,我想要一本可以告诉我单词可以具有的所有功能的字典。例如,“鱼”既是名词又是动词。 “吃”只是动词,“狗”只是名词。我知道这不是一门精确的科学。一个可行的解决方案只是删除所有不能是名词的单词。

最佳答案

尝试使用 wordnet

from nltk.corpus import wordnet
words = ["would","research","part","technologies","size","articles","analyzes","line"]
for w in words:
    syns = wordnet.synsets(w)
    print(w, syns[0].lexname().split('.')[0]) if syns else (w, None)

您应该看到:

('would', None)
('research', u'noun')
('part', u'noun')
('technologies', u'noun')
('size', u'noun')
('articles', u'noun')
('analyzes', u'verb')
('line', u'noun')

关于python文本处理: identify nouns from individual words,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53180810/

相关文章:

python - 混淆正则表达式在 Python 中的使用

python - 循环遍历列并在特定条件下停止(python)

ruby - 在 Ruby 中解析文本文件和排序?

c - 如何使用 C 仅从包含数字和字母的数组中读取数字?

java - 子句的 QA 生成 - NLP

python - 允许 django-admin 中的标签用于只读字段

python - 在 Python 中将多个列表合并为一个列表

python - 将文本文件中的数据转换为数据帧

c# - 使用 SharpNLP 识别英语句子中的时态

java - 在 JAVA 中用词汇信息(中心词)注释树库