【问题标题】:Stemming a list of words in a dataframe提取数据框中的单词列表
【发布时间】:2019-01-13 07:24:18
【问题描述】:

<html>
            <body>
            <table border=1>
            <tr>
            <th>label</th>
            <th>rev</th>
            </tr>
            <tr>
            <td>0</td>
            <td>[ story man unnatural feelings pig...] </td>
            </tr>
            <tr>
            <td>0</td>
            <td>[ airport starts brand new luxury ...] </td></tr>
            <tr>
            <td>0</td>
            <td>[ film lacked something couldnt pu...] </td></tr>
            <tr>
            <td>0</td>
            <td>[ sorry everyone know supposed art...] </td></tr>
            <tr>
            <td>0</td>
            <td>[ little parents took along theate..]</td></tr>
            </table>
            </body>
            </html>

图像-> [1]:https://i.stack.imgur.com/j2EAK.jpg

我的数据框看起来像上面,我尝试了下面的代码来阻止它:

from nltk.stem.porter import PorterStemmer
ps=PorterStemmer()
da.rev=[ps.stem(word) for word in da.loc[:,'rev']]

但它再次导致相同的数据帧,无法指出哪里出了问题。 任何帮助将不胜感激。感谢您的宝贵时间

【问题讨论】:

  • 请分享您的数据样本而不是屏幕截图,这样更容易重现!
  • 请原谅我的菜鸟反应,我是新人。我希望 sn-p 中的数据框有帮助

标签: python-3.x stemming


【解决方案1】:

如果没有看到您的确切代码很难说,但如果系列中的每个项目都是字符串列表,您可以尝试

da.rev.apply(lambda x: [ps.stem(word) for word in x])

【讨论】:

  • [ 故事人不自然的感觉猪] 变成了 [, , s, t, o, r, y, , , , , m, a, n, , ...] 单词没有'太干了
  • 试试da.rev.apply(lambda x: [ps.stem(word) for word in x.split()])
  • 成功了,非常感谢!它是否应该同样适用于词形还原?
  • 是的,应该是一样的原理——比如from nltk.stem import WordNetLemmatizer, lem = WordNetLemmatizer(), da.rev.apply(lambda x: [lem.lemmatize(word) for word in x.split()])
  • 它给了我相同的原始数据框而没有进行词形还原
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 2021-02-10
  • 2018-06-07
  • 1970-01-01
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多