首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >所有熊猫细胞的Lemmatization

所有熊猫细胞的Lemmatization
EN

Stack Overflow用户
提问于 2017-11-30 00:35:24
回答 2查看 25.3K关注 0票数 11

我有一个熊猫数据帧。有一列,让我们把它命名为:'col‘这一列的每个条目都是一个单词列表。'word1‘、'word2’等。

如何使用nltk库有效地计算所有这些单词的引理?

代码语言:javascript
复制
import nltk
nltk.stem.WordNetLemmatizer().lemmatize('word')

我希望能够为pandas数据集中某一列中所有单元格的所有单词找到一个引理。

我的数据看起来类似于:

代码语言:javascript
复制
import pandas as pd
data = [[['walked','am','stressed','Fruit']],[['going','gone','walking','riding','running']]]
df = pd.DataFrame(data,columns=['col'])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-30 00:47:42

您可以使用pandas中的apply和一个函数来对给定字符串中的每个单词进行词汇化。请注意,有许多方法可以对文本进行标记化。如果您使用空格记号赋予器,则可能需要删除.之类的符号。

下面,我将给出一个示例,说明如何对一列示例数据帧进行词条分类。

代码语言:javascript
复制
import nltk

w_tokenizer = nltk.tokenize.WhitespaceTokenizer()
lemmatizer = nltk.stem.WordNetLemmatizer()

def lemmatize_text(text):
    return [lemmatizer.lemmatize(w) for w in w_tokenizer.tokenize(text)]

df = pd.DataFrame(['this was cheesy', 'she likes these books', 'wow this is great'], columns=['text'])
df['text_lemmatized'] = df.text.apply(lemmatize_text)
票数 15
EN

Stack Overflow用户

发布于 2017-11-30 00:45:20

代码语言:javascript
复制
|col| 
['Sushi Bars', 'Restaurants']
['Burgers', 'Fast Food', 'Restaurants']

wnl = WordNetLemmatizer()

下面创建了一个函数,该函数获取单词列表并返回词汇化单词列表。这应该是可行的。

代码语言:javascript
复制
def lemmatize(s):
'''For lemmatizing the word
'''
     s = [wnl.lemmatize(word) for word in s]
     return s

dataset = dataset.assign(col_lemma = dataset.col.apply(lambda x: lemmatize(x))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47557563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档