如何将数据框列转换为字符串以执行ner_chunks

时间:2019-06-21 06:37:55

标签: python nltk ner

如何将数据框列转换为字符串。

摘要列由标题描述数据组成

我希望将dataframe列摘要转换为字符串,以便我可以作为nerchunks的输入

请注意,我的标题和数据框的抽象列仅是对象类型。

df['Abstract'] = df['Abstract'].astype(str)
df['Abstract'].head(5)




i = nltk.ne_chunk_sents(nltk.pos_tag_sents(word_tokenize(df['Abstract'])) , binary=True)
[a for a in i if len(a) == 1]

错误:

  

TypeError:预期的字符串或类似字节的对象

2 个答案:

答案 0 :(得分:0)

要获取数据框的列,您可以尝试

df.columns

但是您正在寻找一个包含所有列名的字符串,并且df.column返回dtype对象。因此,您首先将abouve转换为list,然后简单地将它们连接成一个字符串。在这里,您去了:

yourResult = ' '.join(list(dataset.columns))

希望有帮助。

答案 1 :(得分:0)

您在word_tokenize方法中传递了错误的输入,您需要传递字符串,并且正在传递熊猫系列

# example
import pandas as pd
df = pd.DataFrame(['how are you', 'i am fine', 'what about others'], columns= ['msg']))

现在,当我将df ['msg']传递给word_tokenize时,即word_tokenize(df ['msg'])会抛出与您收到的错误相同的错误, 相反,您应该传递字符串

print([word_tokenize(x) for x in df['msg']])
#o/p
[['how', 'are', 'you'], ['i', 'am', 'fine'], ['what', 'about', 'others']]

希望这对您有帮助