当前位置: 首页 > 面试题库 >

如何在数据框中使用word_tokenize

卜和悌
2023-03-14
问题内容

我最近开始使用nltk模块进行文本分析。我陷入了困境。我想在数据帧上使用word_tokenize,以便获取在数据帧的特定行中使用的所有单词。

data example:
       text
1.   This is a very good site. I will recommend it to others.
2.   Can you please give me a call at 9983938428. have issues with the listings.
3.   good work! keep it up
4.   not a very helpful site in finding home decor.

expected output:

1.   'This','is','a','very','good','site','.','I','will','recommend','it','to','others','.'
2.   'Can','you','please','give','me','a','call','at','9983938428','.','have','issues','with','the','listings'
3.   'good','work','!','keep','it','up'
4.   'not','a','very','helpful','site','in','finding','home','decor'

基本上,我想分离所有单词并找到数据框中每个文本的长度。

我知道word_tokenize可以用于字符串,但是如何将其应用于整个数据框?

请帮忙!

提前致谢…


问题答案:

您可以使用DataFrame API的 apply 方法:

import pandas as pd
import nltk

df = pd.DataFrame({'sentences': ['This is a very good site. I will recommend it to others.', 'Can you please give me a call at 9983938428. have issues with the listings.', 'good work! keep it up']})
df['tokenized_sents'] = df.apply(lambda row: nltk.word_tokenize(row['sentences']), axis=1)

输出:

>>> df
                                           sentences  \
0  This is a very good site. I will recommend it ...   
1  Can you please give me a call at 9983938428. h...   
2                              good work! keep it up

                                     tokenized_sents  
0  [This, is, a, very, good, site, ., I, will, re...  
1  [Can, you, please, give, me, a, call, at, 9983...  
2                      [good, work, !, keep, it, up]

要查找每个文本的长度,请尝试再次使用 applylambda函数

df['sents_length'] = df.apply(lambda row: len(row['tokenized_sents']), axis=1)

>>> df
                                           sentences  \
0  This is a very good site. I will recommend it ...   
1  Can you please give me a call at 9983938428. h...   
2                              good work! keep it up

                                     tokenized_sents  sents_length  
0  [This, is, a, very, good, site, ., I, will, re...            14  
1  [Can, you, please, give, me, a, call, at, 9983...            15  
2                      [good, work, !, keep, it, up]             6


 类似资料:
  • 如何使用Pandas更新/组合/合并数据帧(df1)和来自另一个数据帧(df2)的值,其中df1有一个新列(col3)和来自df2的值。可乐2?换句话说,df1是当前月份的值,我希望df1也有一个来自df2的列,它是上个月的值。 任何关于这方面的见解都是值得赞赏的;非常感谢你。 DF1: DF2: 所需df:

  • 问题内容: 我有以下熊猫数据框: 产生此结果: 我如何传播,以便最终得到这个: 问题答案: 使用或: 但是,如果重复,需要或集合体,或可以改变,…: ValueError:索引包含重复的条目,无法重塑 编辑: 对于设置为和的清洁:

  • 我有这个密码 E/AndroidRuntime:致命异常:AsyncTask#1进程:com.arnaway.metromap,pid:9493 java.lang.RuntimeException:在Android.os.AsyncTask$3执行doInBackground()时出错。done(AsyncTask.java:353)在java.util.concurrent.FutureTas

  • 我想在Excel中存储用户名和密码,无论我在使用WebDriver的任何应用程序中输入什么。我使用TestNG框架和Apache POI将数据写入Excel。但是我得到。请告诉我如何使用Excel工作WebDriver。

  • 现在;我得到以下错误: 我以为这是因为我没有在会话中使用那个数据库;所以我去处理使用session.execute并使用sql语句use来使用数据库,但它给我带来了语法错误 check_if_exists=session.query(latest_movies_scraper).filter_by(name=dictionary['title']).first()

  • 问题内容: 我正在尝试提高使用Java在Spark中实现的Logistic回归算法的准确性。为此,我试图用该列的最频繁值替换该列中存在的Null或无效值。例如:- 在这种情况下,我将用“ a”替换“名称”列中的所有NULL值,用“ a2”替换“位置”列中的所有NULL值。到现在为止,我只能提取特定列中最频繁的列。您能否在第二步中帮助我,该步骤涉及如何用该列的最常用值替换空值或无效值。 问题答案: