我想在数据框中对文本进行分类。我使用字典检查这些值是否在带词干的文本列中,然后在同一列中应用过滤器,以便在新列中指定类别。
过滤器是:如果至少33%的值是True
打印1
,否则打印0
。
注:字典的键代表类别。
我检查第一行的类型:它是一个列表,但是当我应用其他方法时,它不起作用。所以我只把它应用到第一行,但我不知道如何准确地传输到所有其他行。你知道吗
dictionary = {'cat_1' : ['some', stemming', 'bunch'], 'cat_2' : ['to', 'so'], 'cat_3': ['stemming', 'words', 'many', 'bunch']}
dataframe = {'Articles' : ['article1', 'article2', 'article3', 'article4'], 'Text' : [['some', 'stemming', 'words'], ['to' , 'much', 'stemming', 'words'], ['another', 'bunch', 'of', 'stemming', 'words'], ['so', 'many', 'stemming', 'words']]}
test = dataframe.text[0]
for item in dictionary.values():
filt = []
for i in item:
if i in test:
filt.append(True)
else:
filt.append(False)
print(filt)
umbral = len(filt) * 0.33
Trues = filt.count(True)
if Trues > umbral:
print('1')
else:
print('0')
输出为:
[True, True, False]
1
[True, False]
1
[True, True, False, True]
1
我想将其应用于“text”列的每一行,并且只为每个结果使用1
或/和0
列。例如:第一行是:
|----------|-------|-------|-------|
| Articles | cat_1 | cat_2 | cat_3 |
|----------|-------|-------|-------|
| article1 | 1 | 1 | 0 |
|----------|-------|-------|-------|
| article2 | 0 | 1 | 1 |
|----------|-------|-------|-------|
| article3 | 1 | 0 | 0 |
|----------|-------|-------|-------|
不能使用:
其中df代表数据框.text你知道吗
相关问题 更多 >
编程相关推荐