📜  自然语言处理 |过滤无关紧要的词

📅  最后修改于: 2022-05-13 01:54:47.262000             🧑  作者: Mango

自然语言处理 |过滤无关紧要的词

短语中使用的许多词都是微不足道的,没有任何意义。例如——英语是一门学科。在这里,“English”和“subject”是最重要的词,“is”、“a”几乎没用。即使我们去掉无关紧要的词——('is','a'),英语主语和主语英语也具有相同的含义。使用 nltk,我们可以通过查看词性标签来删除无关紧要的单词。为此,我们必须决定哪些词性标签是重要的。

代码#1:filter_insignificant() 类过滤掉无关紧要的词

def filter_insignificant(chunk, 
                         tag_suffixes =['DT', 'CC']):    
    good = []
      
    for word, tag in chunk:
        ok = True
          
    for suffix in tag_suffixes:
        if tag.endswith(suffix):
            ok = False
            break
  
        if ok:
            good.append((word, tag))
              
    return good

filter_insignificant()通过遍历块中的标记词来检查该标记是否以 tag_suffixes 结尾(对于每个标记)。如果 tag 以任何tag_suffixes结尾,则跳过标记的单词。否则,如果标签没问题,则将标签词附加到返回的新好块中。

代码 #2:在短语上使用filter_insignificant()

from transforms import filter_insignificant
  
print ("Significant words : \n", 
       filter_insignificant([('the', 'DT'), 
                             ('terrible', 'JJ'), ('movie', 'NN')]))

输出 :

Significant words : 
[('terrible', 'JJ'), ('movie', 'NN')]

我们可以使用filter_insignificant()传递不同的标签后缀。在下面的代码中,我们讨论的是代词和所有格词,例如 your, you, theirs 和 theirs 是不好的,但是 DT 和 CC 词是可以的。标记后缀将是 PRP 和 PRP$:代码#3:使用filter_insignificant()我们自己的标签后缀

from transforms import filter_insignificant
  
# choosing tag_suffixes
print ("Significant words : \n", 
       filter_insignificant([('your', 'PRP$'), 
                             ('book', 'NN'), ('is', 'VBZ'), 
                             ('great', 'JJ')], 
        tag_suffixes = ['PRP', 'PRP$']))

输出 :

Significant words : 
[('book', 'NN'), ('is', 'VBZ'), ('great', 'JJ')]