大Pandas细胞的金属化

2024-05-14 18:50:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框。 有一列,我们命名为:“col” 此列的每个条目都是一个单词列表。['word1','word2'等]

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

import nltk
nltk.stem.WordNetLemmatizer().lemmatize('word')

我想在熊猫数据集的一列中找到所有细胞的所有单词的引理。

我的数据看起来类似于:

import pandas as pd
data = [[['walked','am','stressed','Fruit']],[['going','gone','walking','riding','running']]]
df = pd.DataFrame(data,columns=['col'])

Tags: 数据import列表data条目col单词命名
2条回答

可以使用pandas中的apply函数对给定字符串中的每个单词进行元素化。注意,有很多方法可以标记文本。如果使用空白标记器,则可能必须删除像.这样的符号。

下面,我将给出一个关于如何对示例dataframe的列进行元素化的示例。

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)
|col| 
['Sushi Bars', 'Restaurants']
['Burgers', 'Fast Food', 'Restaurants']

wnl = WordNetLemmatizer()

下面创建一个函数,该函数接受单词列表并返回元素化单词列表。这应该管用。

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))

相关问题 更多 >

    热门问题