我有一个语料库中唯一单词的字典。与文本出现如下:
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
,它是您在整个数据集中拥有的唯一单词。虽然您在问题中提到了字典,但输出格式建议如下:您将希望输入多个字典,然后获得您正在寻找的输出格式。
遵循以下步骤:
- 生成不同字典的id,如
dict_unique_words
,word_freq_statement1
,word_freq_statement2
等 - 为
ID
到字典对象(如{1: abc}
)创建一个映射字典,其中abc
是单词到频率的字典。我们将此字典命名为id_to_docs
- 通过遍历所有输入字典(我将在这里引用为
docs
)创建单词词汇表。 现在你有id和
vocab
值的第一行的数据帧假设你有一个IDs
和vocab
的列表,为每个ID
在数据框中创建一个新行。遍历vocab
列表,并通过查找单词在文档中的出现次数来检查单词在vocab列表中的适当值。doc
使用id_to_docs
。如果vocab值不存在,则设置为NaN。创建dataframe的xmlesque形式只需格式化第5步中出现的字符串。