【问题标题】:How to use porterstemmer如何使用搬运工
【发布时间】:2021-12-05 11:45:18
【问题描述】:

我有一个包含餐厅评论的数据集。我已经处理了我的数据,这就是我的数据集的样子(0 和 1 显示它是正面评价还是负面评价):

0   ['wow', 'loved', 'place']   1
1   ['crust', 'good']   0
2   ['not', 'tasty', 'texture', 'nasty']    0
3   ['stopped', 'late', 'may', 'bank', 'holiday', ...   1
4   ['the', 'selection', 'menu', 'great', 'prices'] 1

简而言之,我想使用 PorterStemmer,这就是我学习使用它的方式:

for i in range(1000):
  for word in df['Review'][i]:
    word = stemmer.stem(word)

我研究过使用 porterstemmer 来进行词干提取,但它不起作用。任何单词都不是词干(例如,在第一个数据中,我预计“loved”这个词应该变成“love”)。我的数据仍然与我在上面共享的数据框相同,我无法解决这个问题。

【问题讨论】:

  • 如果您将代码编辑为minimal reproducible example,您将更有可能得到答案 - 是的,包括导入和一些像您显示但作为 Python 变量初始化的数据 - 所以任何人都可以复制/将其粘贴到文件中并不添加任何内容运行它以查看您描述的问题。如果您对此不确定,请阅读tourHow to Ask,然后阅读minimal reproducible example

标签: nlp stemming porter-stemmer


【解决方案1】:

您的代码 - 如果它是一个最小的可重现示例,它将更容易运行/调试 - 缺少一行来用词干提取的结果替换原始单词:

for i in range(1000):
    for word in df['Review'][i]:
        word = stemmer.stem(word)
        df['Review'][i] = word   ########## added

如果你还添加:

        print( f"{word=}" )

词干输出是:

word='wow'
word='love'
word='place'
word='crust'
word='good'
word='not'
word='tasti'
word='textur'
word='nasti'
word='stop'
word='late'
word='may'
word='bank'
word='holiday'
word='the'
word='select'
word='menu'
word='great'
word='price'

下次您提出问题时,您应该使代码成为可重现的最小示例 - 这有两件事:1. 使您的代码最小化并确认您发布的代码仍然显示相同的问题通常有助于查找/修复问题,以及 2) 你的问题的读者更容易自己测试。永远不要忘记,您要求人们使用自己的时间和精力来尝试帮助您,唯一的奖励最多是一两点声誉;提供良好的可运行短代码并清楚地描述其中的问题将帮助您获得答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    相关资源
    最近更新 更多