使用字典中给定的单词出现次数更新数据框的单元格



我有一个语料库中唯一单词的字典。与文本出现如下:

dict_unique_words = {'word1':3, 'word2':5, 'word3':9}

三个语句中每个单词的出现情况如下:

word_freq_statement1 = {'word2':1, 'word3' :3}
word_freq_statement2 = {'word1':3, 'word3' :1}
word_freq_statement3 = {'word2':4, 'word3' :5}

我想要得到一个数据帧,它以以下格式显示每个单词的频率:

<table><thead><tr><th>ID</th><th>word1</th><th>word2</th><th>word3</th></tr></thead><tbody><tr><td>abc</td><td>Nan</td><td>1</td><td>3</td></tr><tr><td>xyz</td><td>3</td><td>Nan</td><td>1</td></tr><tr><td>mno</td><td>Nan</td><td>4</td><td>5</td></tr></tbody></table>

被困在这里3天了。请帮助。衷心的感谢。

从概念上讲,您似乎试图生成的内容看起来像是一个词包实现。考虑到这一假设,我相信"id"。你在问题中提到的是文档ID。

您需要的一件事是vocabulary,它是您在整个数据集中拥有的唯一单词。虽然您在问题中提到了字典,但输出格式建议如下:您将希望输入多个字典,然后获得您正在寻找的输出格式。

遵循以下步骤:

  1. 生成不同字典的id,如dict_unique_words,word_freq_statement1,word_freq_statement2
  2. ID到字典对象(如{1: abc})创建一个映射字典,其中abc是单词到频率的字典。我们将此字典命名为id_to_docs
  3. 通过遍历所有输入字典(我将在这里引用为docs)创建单词词汇表。
  4. 现在你有id和vocab值的第一行的数据帧假设你有一个IDsvocab的列表,为每个ID在数据框中创建一个新行。遍历vocab列表,并通过查找单词在文档中的出现次数来检查单词在vocab列表中的适当值。doc使用id_to_docs。如果vocab值不存在,则设置为NaN。

创建dataframe的xmlesque形式只需格式化第5步中出现的字符串。

最新更新