首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据出现情况获取单词的权重

根据出现情况获取单词的权重
EN

Stack Overflow用户
提问于 2016-09-23 18:16:54
回答 1查看 49关注 0票数 0

也许这与math.stacexhange有关,但我担心,我会得到一个公式来回答我不理解的东西。

我的数据库中有产品,另一个表中有来自不同供应商的产品。

我想要的是,如果可能的话,将这些供应商的产品与我们的产品配对,或者至少给我展示一个列表,那里的匹配度很高。

我确实遍历了所有供应商的产品,通过空格分解产品名称,并将其存储在一个表中,并计算出现次数。

这张桌子看起来像这样。

代码语言:javascript
复制
+--------+-------------+---------------+-------+
|   id   |    word     | originalWord  | count |
+--------+-------------+---------------+-------+
| 220950 | Tracer      | Tracer        |   493 |
| 220951 | Destroyer   | Destroyer     |     3 |
| 220952 | Avago5050   | Avago5050     |     4 |
| 220953 | mouse       | mouse         |  2535 |
| 220954 | TRAMYS44916 | /TRAMYS44916/ |     2 |
| 220955 | GameZone    | GameZone      |    16 |
| 220956 | Enduro      | Enduro        |     3 |
| 220957 | AVAGO       | AVAGO         |    10 |
| 220958 | 5050        | 5050          |     4 |
| 220959 | optical     | optical       |  2370 |
| 220960 | USB         | USB           |  6160 |
+--------+-------------+---------------+-------+

诸若此类。当然,在我存储的另一个表中,每个单词的产品id是什么。

所以我想要的是通过出现来确定一个单词的权重。

正如你所看到的,单词TRAMYS44916只出现了两次,几乎可以肯定那是一个partnumber,所以这是最重的单词。它的权重应该是1。

假设出现次数最多的是USB,出现次数为6160次,所以我认为它的重量应该在0.01左右。

获得所有单词权重的最佳方法是什么?

对于其他供应商,还有其他表,因此分散度总是在变化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 18:39:22

这让我想起了朴素贝叶斯文本分类,因此要确定它应该属于哪个产品,可以计算所有单词的tf-idf。

然后,如果您想从另一个产品名称中将其配对,您可以将其再次分解为单词,并根据最高术语值选择产品id,但是,您可能应该为此指定一些阈值,因为在某些情况下,它可能不是那么清楚。

tf-idf =(“产品名称匹配字数”/“产品名称字数”)* log (“产品数量”/“包含该单词的产品数量”)

您可以在下面的示例中看到它是如何完成的(在您的示例中,文档将是产品的全名):https://en.wikipedia.org/wiki/Tf–idf#Example_of_tf.E2.80.93idf

Java中的示例实现:https://guendouz.wordpress.com/2015/02/17/implementation-of-tf-idf-in-java/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39658306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档