python pandas 搭上复数 "s" 的字数,为字数统计做准备
python pandas get ride of plural "s" in words to prepare for word count
我有以下 python pandas 数据框:
Question_ID | Customer_ID | Answer
1 234 The team worked very hard ...
2 234 All the teams have been working together ...
我将使用我的代码来计算答案栏中的字数。但事先,我想从单词 "teams" 中取出 "s",以便在上面的示例中我计算 team: 2 而不是 team:1 和 teams:1。
我怎样才能对所有单词执行此操作?
使用 str.replace
从任何以 's'
结尾的 3 个或更多字母单词中删除 s。
df.Answer.str.replace(r'(\w{2,})s\b', r'')
0 The team worked very hard ...
1 All the team have been working together ...
Name: Answer, dtype: object
'{2,}'
指定 2 个或更多。与 's'
相结合确保您会错过 'is'
。您可以将其设置为 '{3,}'
以确保您也跳过 'its'
。
您需要使用自然语言工具包提供的标记器(用于将句子分解为单词)和词形还原器(用于标准化单词形式)nltk
:
import nltk
wnl = nltk.WordNetLemmatizer()
[wnl.lemmatize(word) for word in nltk.wordpunct_tokenize(sentence)]
# ['All', 'the', 'team', 'have', 'been', 'working', 'together']
试用 NTLK 工具包。特别是词干提取和词形还原。我从来没有亲自使用过它,但是 here 你可以试试看。
这是一些棘手的复数的例子,
its it's his quizzes fishes maths mathematics
变成
it it ' s hi quizz fish math mathemat
你可以看到它对 "his"(和 "mathematics")的处理很糟糕,但是你又可以有很多缩写的 "hellos"。这就是野兽的本性。
我有以下 python pandas 数据框:
Question_ID | Customer_ID | Answer
1 234 The team worked very hard ...
2 234 All the teams have been working together ...
我将使用我的代码来计算答案栏中的字数。但事先,我想从单词 "teams" 中取出 "s",以便在上面的示例中我计算 team: 2 而不是 team:1 和 teams:1。
我怎样才能对所有单词执行此操作?
使用 str.replace
从任何以 's'
结尾的 3 个或更多字母单词中删除 s。
df.Answer.str.replace(r'(\w{2,})s\b', r'')
0 The team worked very hard ...
1 All the team have been working together ...
Name: Answer, dtype: object
'{2,}'
指定 2 个或更多。与 's'
相结合确保您会错过 'is'
。您可以将其设置为 '{3,}'
以确保您也跳过 'its'
。
您需要使用自然语言工具包提供的标记器(用于将句子分解为单词)和词形还原器(用于标准化单词形式)nltk
:
import nltk
wnl = nltk.WordNetLemmatizer()
[wnl.lemmatize(word) for word in nltk.wordpunct_tokenize(sentence)]
# ['All', 'the', 'team', 'have', 'been', 'working', 'together']
试用 NTLK 工具包。特别是词干提取和词形还原。我从来没有亲自使用过它,但是 here 你可以试试看。
这是一些棘手的复数的例子,
its it's his quizzes fishes maths mathematics
变成
it it ' s hi quizz fish math mathemat
你可以看到它对 "his"(和 "mathematics")的处理很糟糕,但是你又可以有很多缩写的 "hellos"。这就是野兽的本性。