我有一个熊猫数据帧。有一列,让我们把它命名为:'col‘这一列的每个条目都是一个单词列表。'word1‘、'word2’等。
如何使用nltk库有效地计算所有这些单词的引理?
import nltk
nltk.stem.WordNetLemmatizer().lemmatize('word')我希望能够为pandas数据集中某一列中所有单元格的所有单词找到一个引理。
我的数据看起来类似于:
import pandas as pd
data = [[['walked','am','stressed','Fruit']],[['going','gone','walking','riding','running']]]
df = pd.DataFrame(data,columns=['col'])发布于 2017-11-30 00:47:42
您可以使用pandas中的apply和一个函数来对给定字符串中的每个单词进行词汇化。请注意,有许多方法可以对文本进行标记化。如果您使用空格记号赋予器,则可能需要删除.之类的符号。
下面,我将给出一个示例,说明如何对一列示例数据帧进行词条分类。
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)发布于 2017-11-30 00:45:20
|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))https://stackoverflow.com/questions/47557563
复制相似问题