gpt4 book ai didi

python - Python 中数学公式的语法

转载 作者:太空狗 更新时间:2023-10-30 02:32:11 24 4
gpt4 key购买 nike

我正在尝试用 Python 实现一个数学公式,我是这方面的初学者,所以请和我一起工作。

我有两个 3 列制表符分隔的文件:

例如:输入A:

abandonment-n about-bring-v 32.5890
abandonment-n about-complaint-n 5.5112
abandonment-n about-concern-n 10.6714
abandonment-n among-1-crowd-n 11.4496

输入B:

aardvark-n about-fact-n 7.4328
aardvark-n about-information-n 6.5145
aardvark-n about-know-v 6.4239
aardvark-n among-1-crowd-n 9.9085

输入B:

我尝试实现的公式应该将这两个文件都视为输入。

数学上,公式如下:

Similarity Measurethis paper 中所述

其中,f = 特征,Fx = 特征向量,w = 特征权重。

这是我到目前为止想出的:

将两个输入作为字典导入,其中 [feature:weight]。

假设 inputA = x 和 inputB = y。

那么,我为公式设计的语法如下:

score = sum(i for i in x if i in y) * w(i) / sum(i for i in x)* w(i)

在这种情况下,*w(i) 应该乘以相应特征的权重。

谁能帮我解决 Python 中的数学语法问题(即根据我尝试转换的公式是否正确),因为这是我第一次尝试它?

提前致谢

最佳答案

接近,但不完全是。你想要这样的东西:

from __future__ import division # this must be the very first import statement
score = sum(i*w(i) for i in x if i in y) / sum(i * w(i) for i in x)

基本上,在这两种情况下,您都将 w(i) 排除在总和之外,这不是公式的作用;此外,w(i) 在总和之外毫无意义,因为 i 只存在于总和中。

检查一个元素是否在列表中可能是昂贵的。你可以做得更好:

from __future__ import division # this must be the very first import statement
xx = set(x)
yy = set(y)
score = sum(i*w(i) for i in xx & yy) / sum(i * w(i) for i in x)

其中 xx & yyxx.intersection(yy) 的 Python 简写。这假设 xy 从不包含重复元素,但考虑到公式中使用的符号,这似乎是一个安全的假设。

关于python - Python 中数学公式的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19656312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com