我想从文本文件中的单词列表创建二进制表。 (在Python中) 我收集了来自不同推文的所有单词,并将它们添加到字典中。(由Word1 Word2 Word3代表......在这里并且全部都有)
所以,在我的例子中,我的词典中的tweet1的所有单词。在第二条推文中,只有推文的第三个字出现在我的字典中。
Word1 Word2 Word3 ...
Tweet1 1 1 1
Tweet2 0 0 1
Tweet3 0 0 0
收集的不同单词位于文本文件中:
April
Today
I'm
going
to
add
BLOOD
ALL
OVER
YOUR
HANDS
编辑: 当我在脚本中直接使用推文时,它运行良好。但是,当我把完全相同的推文放在一个文件中时,我有一个错误。
def tabBinaire():
with open("data", "r") as f:
for line in f:
defi = cool.DataFrame(line)
print(defi)
cv = CountVectorizer(token_pattern=r'\w{1,}')
df1 = cv.fit_transform(defi['tweet'])
output = cool.DataFrame(df1.todense(), columns=cv.get_feature_names())
print(output)
我的档案:
{'tweet': ['how happy am i today','why is it not raining today','why is sky blue']}
错误:
Traceback (most recent call last):
File "py2.py", line 42, in <module>
tabBinaire();
File "py2.py", line 33, in tabBinaire
defi = cool.DataFrame(line)
File "/Library/Python/2.7/site-packages/pandas/core/frame.py", line 404, in __init__
raise ValueError('DataFrame constructor not properly called!')
ValueError: DataFrame constructor not properly called!
答案 0 :(得分:0)
以下是您要执行的操作的最小示例:
from sklearn.feature_extraction.text import CountVectorizer
df = pd.DataFrame({'tweet': ['how happy am i today','why is it not raining today','why is sky blue']})
# initialise vectorizer
cv = CountVectorizer(token_pattern=r'\w{1,}')
# apply countvec
df1 = cv.fit_transform(df['tweet'])
# create output
output = pd.DataFrame(df1.todense(), columns=cv.get_feature_names())
print(output)