【问题标题】:Filter Specific Part of Speech NLTK过滤特定部分的语音 NLTK
【发布时间】:2014-02-19 13:49:22
【问题描述】:

这一定很简单,但不知何故我想念它。我有代码:

import nltk

f=open('...\\t.txt','rU')
raw=f.read()
tokens = nltk.word_tokenize(raw)
print nltk.pos_tag(tokens)

例如返回:

"[('processes', 'NNS'), ('a', 'DT'), ('sequence', 'NN'), ('of', 'IN'), ('words', 'NNS')]

我想知道如何只收集所有的 'NN' 例如或所有的 'DT' AND 'IN' 而不是字符串的每个成员。

提前致谢

【问题讨论】:

    标签: python filter nltk pos-tagger


    【解决方案1】:

    您可以通过列表理解仅提取您想要的标签,例如:

    >>> tags = nltk.pos_tag(tokens)
    >>> dt_tags = [t for t in tags if t[1] == "DT"]
    >>> dt_tags
    [('a', 'DT')]
    

    【讨论】:

    • 完美,如果我想找到 DTs 和 NNS tags2 = [t for t in nltk.pos_tag(tokens) if t[1] == "NNS"] tags2 就复制
    • 是的,你甚至可以为每种类型制作一个带有标签的字典:all_tags = {tag: [t for t in tags if t[1] == tag] for tag in ["DT", "NNS", ...]}
    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2021-05-22
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多