我尝试将文本中的单词替换为一袋单词中的值。我尝试了不同的方法,但没有任何效果。我在此站点上看到了很多类似的主题,但是没有任何帮助。
我有两个DataFrame:
word frequency probability
0 I 678999 -2.862037
1 like 358754 -3.500018
2 python 341503 -3.549299
3 and 294807 -3.696334
4 pandas 275915 -3.762562
text
0 I like python
1 and pandas
我需要在DF中找到匹配项,并将其替换为bag_of_words中单词的值:
text
0 -2.862037 -3.500018 -3.549299
1 -3.696334 -3.76256
我试图通过两种方式解决问题:
for word, probability in bag_of_words.itertuples(index=False,name=None):
df.text = df.text.str.replace(r'\b{0}\b'.format(word),probability)
收到错误:
ValueError: too many values to unpack (expected 2)
和另一种方式:
def correct(w,bag_of_words):
c =bag_of_words.get(w)
return c if c else w
def corrections(sent,bag_of_words):
return " ".join((correct(w, bag_of_words) for w in sent.split()))
df.apply(lambda x: corrections(x.text, bag_of_words),axis=1)
收到错误: #
ValueError :(“系列的真值不明确。请使用a.empty, a.bool(),a.item(),a.any()或a.all()。','发生在索引0')
答案 0 :(得分:1)
将HResult
的嵌套列表推导用于字典的地图值:
get