从 pandas 系列中提取 pos_tag_sents
extract pos_tag_sents from pandas series
按照线程 的建议,我 运行 代码为我的一个变量中的文本识别不同的 pos。
既然我设法创建了感兴趣的列 - sub['POS'] - 我如何提取我的相关信息 - 所有 NN - 并为它们中的每一个创建一个列?
print(sub['POS'])
5 [(e-mail, JJ), (new, JJ), (delhi, NN), ((, (),...
4 [(bangladesh, JJ), (garment, NN), (unions, NNS...
41 [(listen, VB), (blaze, NN), (wrecks, NNS), (te...
10 [(11:49, CD), (am, VBP), (,, ,), (september, V...
17 [(listen, JJ), (two, CD), (events, NNS), (plan...
作为输出,我想要一个新列(此处为 'NN'),其中包含每行的所有 NN。
df = pd.DataFrame(["delhi",
"garment" ,
"blaze",
NaN], columns=['NN'])
所以我假设您在数据框中有一列,其中每一行都是一个元组列表。如果我错了,请纠正我。您希望从该列为每个 'Tag' 创建新列。你觉得下面的内容能达到你想要的效果吗?
import pandas as pd
import numpy as np
df = pd.DataFrame({"line":[[('e-mail', 'JJ'), ('new', 'JJ'), ('delhi', 'NN')]]})
def extract_pos(line,pos):
return [word[0] for word in line if word[1] == pos]
df['NN'] = [extract_pos(line,'NN') for line in df['line']]
df['JJ'] = [extract_pos(line,'JJ') for line in df['line']]
通过这种方式,您可以根据需要添加许多列,结果可能如下所示。
希望这对您有所帮助,
干杯
按照线程
既然我设法创建了感兴趣的列 - sub['POS'] - 我如何提取我的相关信息 - 所有 NN - 并为它们中的每一个创建一个列?
print(sub['POS'])
5 [(e-mail, JJ), (new, JJ), (delhi, NN), ((, (),...
4 [(bangladesh, JJ), (garment, NN), (unions, NNS...
41 [(listen, VB), (blaze, NN), (wrecks, NNS), (te...
10 [(11:49, CD), (am, VBP), (,, ,), (september, V...
17 [(listen, JJ), (two, CD), (events, NNS), (plan...
作为输出,我想要一个新列(此处为 'NN'),其中包含每行的所有 NN。
df = pd.DataFrame(["delhi",
"garment" ,
"blaze",
NaN], columns=['NN'])
所以我假设您在数据框中有一列,其中每一行都是一个元组列表。如果我错了,请纠正我。您希望从该列为每个 'Tag' 创建新列。你觉得下面的内容能达到你想要的效果吗?
import pandas as pd
import numpy as np
df = pd.DataFrame({"line":[[('e-mail', 'JJ'), ('new', 'JJ'), ('delhi', 'NN')]]})
def extract_pos(line,pos):
return [word[0] for word in line if word[1] == pos]
df['NN'] = [extract_pos(line,'NN') for line in df['line']]
df['JJ'] = [extract_pos(line,'JJ') for line in df['line']]
通过这种方式,您可以根据需要添加许多列,结果可能如下所示。
希望这对您有所帮助, 干杯