何时在使用像PMI这样的bigram_measures时删除停用词?

时间:2017-12-07 04:49:14

标签: python nlp nltk

我需要验证处理从bigram_measure(例如PMI)返回的bigram停用词的整体方法。为什么要处理这些停用词呢?好吧,它们会产生噪音,并且不会在某一点上添加任何其他值。

我已经看到了几个如何使用bigram_measures的具体例子。但是,我想知道在清理数据,扩展,引理/词干等整个过程中删除停用词的最佳方法。

是的,我正在使用足够大的语料库。我记得你的语料库的大小也会影响bigram_measures结果的质量。

根据这篇文章中接受的答案(NLTK - Counting Frequency of Bigram),似乎在语料库上使用PMI或其他bigram_measure之后可以删除停用词。

  

"想象一下,如果过滤搭配只是删除它们,那么就会有许多概率测量,例如可能性比率或PMI本身(计算一个词相对于语料库中其他词的概率),这些概率不会起作用从给定语料库中的随机位置删除单词后正确删除。通过删除给定的单词列表中的一些搭配,许多潜在的功能和计算将被禁用......"

因此,我认为最好的流程是:

  1. 清理文本并删除HTML标签等垃圾字符。
  2. 展开收缩(例如:他们' re - >他们是)
  3. Lemmatize或stem to normalize words
  4. 使用像PMI这样的bigram_measures计算bigrams。您可以使用其他方法计算双字母,但这正是我所使用的。
  5. 应用频​​率过滤器,例如" apply_freq_filter(N)"获得超过你的门槛的双胞胎。请注意,这仍然会返回一些带有停用词的bigrams与有价值的双字母组合。
  6. 检查BOTH单词是否为停用词。如果是,那么不要在最终结果中包含该二元组,而是将其留在语料库中,原因如上所述。
  7. 这是一个正确的整体方法来处理与有价值的双字母组合在一起的双字母停止词吗?

    感谢。

1 个答案:

答案 0 :(得分:0)

在做了额外的研究后,我将提出以下答案。

一种方法是: - 清理文字 - 扩大收缩 - lemmatize - 删除停用词 - 运行PMI或其他措施以得分n克。

来源:使用Python进行文本分析,第224页。

我提供上述来源的目的是显示我从哪里得到这个答案,而不是提供一些无根据的答案。如果主持人将此视为"建议"然后我将其删除。