如何解决参数 'string' 的类型不正确预期 str,得到 DataFrame
您好,我是 Python 新手,我对 Python 不是很熟悉。我正在尝试标记我的数据。我有 1000 条客户评论,我创建了一个名为:review_table 的表。我写了下面的代码,想看看它是否有效:
scipy.stats
但我收到以下消息错误:参数“字符串”的类型不正确(预期 str,得到数据帧)
感谢您的帮助!
解决方法
问题出现在以下代码段的最后一行:
import pandas as pd
import spacy
nlp = spacy.load("en_core_web_sm")
review_table = pd.DataFrame({'spacy':[nlp('I know it is cool.'),nlp('How are you?')]})
review_table["exemple"] = [[sent for sent in doc.sents] for doc in review_table["spacy"]]
exemple = review_table["exemple"].iloc[0]
doc = nlp(review_table)
之所以会这样,是因为 review_table
是一个至少有两列的数据框对象,spacy
(带有 spacy 文档对象)和 exemples
(带有 spacy 文档对象列表)。
您需要确保没有在其中一列中存储过分的文档。下面是一个例子:
import pandas as pd
import spacy
review_table = pd.DataFrame({'text':['I know it is cool.','How are you?']})
review_table['spacy'] = review_table['text'].apply(lambda x: [t.text for t in nlp(x)])
>>> review_table
# text spacy
# 0 I know it is cool. [I,know,it,is,cool,.]
# 1 How are you? [How,are,you,?]
如果你想过滤掉停用词:
review_table['spacy'] = review_table['text'].apply(lambda x: [t.text for t in nlp(x) if not t.is_stop])
如果您还想删除标点符号:
review_table['spacy'] = review_table['text'].apply(lambda x: [t.text for t in nlp(x) if not t.is_stop and not t.is_punct])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。