gpt4 book ai didi

java - 余弦相似度文档距离

转载 作者:行者123 更新时间:2023-11-30 03:29:55 30 4
gpt4 key购买 nike

给我两个文档,要求我计算文档中每个单词的出现频率。例如,在doc1和doc2中,单词“CAT”分别出现了两次,那么它总共出现了4次,我需要计算它出现的频率。

通过过去三个晚上的一些谷歌搜索,我发现了一个很棒的算法,称为余弦相似度。我现在明白它是如何运作的了。

但是我不知道如何用Java实现它。我应该如何将单词转换为 vector ?

假设我的输入是“多少木卡盘卡盘土拨鼠可以卡住木头”我如何将单词转换为n vector 空间?我是否首先创建一个单词数组,然后使用计数变量迭代该数组以查看该单词出现了多少次?但这不是意味着我们至少需要 n 个计数变量吗?

非常感谢您帮我解决这个问题

最佳答案

将结果保存为 Map<String, Integer> ,并使用String#split()将输入分成单词。

将文本读入字符串后,您只需要一行代码:

Map<String, Integer> frequencies = Arrays
.stream(text.toLowerCase().split("[^a-z']+"))
.collect(Collectors.groupingBy(s -> s, Collectors.counting());

关于java - 余弦相似度文档距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29304109/

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