Python中的位置倒排索引

2024-06-28 11:40:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开发了一个Python程序,它可以根据某个文档中的术语生成倒排索引。我现在想创建职位公告,例如

to, 993427:
⟨ 1, 6: ⟨7, 18, 33, 72, 86, 231⟩;

2, 5: ⟨1, 17, 74, 222, 255⟩; 4, 5: ⟨8, 16, 190, 429, 433⟩; 5, 2: ⟨363, 367⟩;

7, 3: ⟨13, 23, 191⟩; …⟩

我只想实现上面描述的功能,我不知道。在

^{pr2}$

这是到目前为止我所拥有的,唯一的新功能是getWordBins函数和循环:

    txt = readIn(fileList)
    posWord = getWordBins(txt)
    for key, value in posWord.most_common(topWords):
        print key, value

现在,当我尝试运行代码时会发生以下情况:

Traceback (most recent call last):
  File "Intro3.py", line 82, in <module>
    main(sys.argv, sys.argv)
  File "Intro3.py", line 60, in main
    posWord = getWordBins(txt)
  File "Intro3.py", line 41, in getWordBins
    cnt[posOfWords] += 1
TypeError: unhashable type: 'dict'

任何有这种令人不安的错误的指导都是乐意接受的。这不是字典,为什么会出错呢? 谢谢你的时间!在


Tags: keyinpy功能txtmostvaluemain
1条回答
网友
1楼 · 发布于 2024-06-28 11:40:35

你在做什么:

cnt[posOfWords] += 1

我想你的意思是:

^{pr2}$

readin函数还返回dict和set,因此您的txt变量是一个元组(dictset

因此,您的问题归结为试图使用一个包含dict作为键的元组(我怀疑这是您的意图)。它对cnt[word] += 1不起作用,因为它仍然试图使用dict作为键。您可能需要这样做:

txt, _ = readIn(fileList)

然后这可能会奏效:

^{pr2}$

相关问题 更多 >