我有一本字典,里面的关键字是简单的单词,值是一个分数。我想根据单词的频率和字典中存储的分数(值)来计算分数,并与文件(或字符串)中的数学单词进行比较。例如,假设我的文本是:
“狗是好宠物,仓鼠是坏宠物。所以我想要条狗”
我的字典是:
Dict={'dogs':5,'hampster':-2}
然后我想计算一个8分((2x5)-2=8)。我能在字典里找到出处
for key in Dict:
m = re.findall(key, READ , re.IGNORECASE)
但我无法以有效的方式访问密钥的值。在
非常感谢任何帮助。在
谢谢,
斯科特
Tags:
编辑:史蒂夫五世的灵感来源于以下几点:
强制性的一句话:
^{2}$然后分开:
显著特点:
分数不是8(正如您在上面所说的),而是3,因为单词}等情况。这并不容易,也不一定正确。
dogs
在您给出的字符串中只出现一次。如果要对单词dog
计数两次,则需要一个(远)更复杂的算法,可能需要与一个多元化库接口来处理child -> children
和{我已经包含了
.lower()
来忽略您给出的字符串中的大写字母。如果你不想那样的话,就取消通话。你拼错了“仓鼠”:p.
这应该是有效的:
mtext=“狗是很好的宠物,仓鼠是坏宠物。所以我想要条狗” 对于输入Dict: p=重新编译(“狗”,忽略案例) NuOfDogs=len(p.findall(mtext))#返回出现次数
如果可能的话用Katrielex的答案,它比我的更干净。如果您没有Python 2.7(像我一样),这可能对您有用:
我在你的分数字典里做了“dogs”->;“dog”,假设这是个打字错误。如果你把它改回来,你的结果是3而不是复数。在
相关问题 更多 >
编程相关推荐