【问题标题】:How can I check if my stopword removal algorithm is working?如何检查我的停用词删除算法是否有效?
【发布时间】:2019-07-25 18:00:07
【问题描述】:

目前我对 Python 非常熟悉,但对 NLP 很陌生。

我已将结果打印出来,它似乎在做我想做的事,但我该如何验证呢?

from nltk.corpus import stopwords

stop_words = stopwords.words("english")
function_words = []

for word in tokens:
    if word.lower() not in stop_words:
        function_words.append(word)

'tokens' 是我之前在代码中定义的数组。

【问题讨论】:

  • 为它编写单元测试。

标签: python nlp nltk stop-words


【解决方案1】:

不确定答案是否与以下内容一样明显,或者我是否遗漏了什么。由于 stop_words 是一个简单的列表,打印它可以让您验证例如“我们自己”在其中,您确实可以按照建议编写一个简单的单元测试:

from nltk.corpus import stopwords
stop_words = stopwords.words("english")
tokens = ['ourselves', 'computer']
function_words = []
for word in tokens:
    if word.lower() not in stop_words:
        function_words.append(word)
if not function_words == ['computer']:
    print('Something went wrong!')

这应该可以解决问题(您可能需要考虑使用 assert (https://wiki.python.org/moin/UsingAssertionsEffectively),或者让它在其他方向上更花哨,但是这个基本示例应该可以回答您的问题。

【讨论】:

  • 是的,我只是想小心处理它,因为我之前使用的算法存在语义问题,使它看起来有效,但对于更长的字符串,它就不起作用(它有与我删除数组中元素的方式有关)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多