|
|
1
6
基本上,相似性度量是一种数学方法,你可以:
对于相似性度量,这个数字是介于0和1之间的数字,其中“0”表示“完全不匹配”,“1”表示“相同”
cosine similarity Jaccard index 这两个指标的作用是,它们取两个向量(你的输入句子和你的“关键字”列表),并给你一个数字。如果你在所有类别中都这样做,你可以对这些数字进行排名,以查看哪个匹配具有最大的相似系数。
所以你可以构造一个有5个元素的向量:(1,1,1。1,1)。这意味着,对于“客户交易”关键字,你有5个单词,(这听起来很明显,但)每个单词都出现在你的搜索字符串中。跟我来。
(实际上,这说明了另一个细微差别:你实际上有“客户”。这相当于“客户”吗?) 你的句子的向量可能是(1,0,1,1,0)
所以我们可以说:这些向量相差多少倍?让我们比较一下: (1,0,1,1,0)
祝你好运 |
|
|
2
2
该问题的主要特征是:
这些特征带来了好消息和坏消息:实现应该相对简单,但分类过程的一致准确性可能很难实现。此外,少量的各种数量(可能的类别数量、项目中的最大/平均字数等)应该给我们空间来选择可能占用CPU和/或空间的解决方案(如果需要的话)。 然而,即使有了这个许可证,我建议从(并保持密切关注)开始 基本算法 Parameters =
CatKWs = an array/hash of lists of strings. The list contains the possible
keywords, for a given category.
usage: CatKWs[CustTx] = ('deposits', 'deposit', 'customer' ...)
NbCats = integer number of pre-defined categories
Variables:
CatAccu = an array/hash of numeric values with one entry per each of the
possible categories. usage: CatAccu[3] = 4 (if array) or
CatAccu['CustTx'] += 1 (hash)
TotalKwOccurences = counts the total number of keywords matches (counts
multiple when a word is found in several pre-defined categories)
Pseudo code: (for categorizing one input item)
1. for x in 1 to NbCats
CatAccu[x] = 0 // reset the accumulators
2. for each word W in Item
for each x in 1 to NbCats
if W found in CatKWs[x]
TotalKwOccurences++
CatAccu[x]++
3. for each x in 1 to NbCats
CatAccu[x] = CatAccu[x] / TotalKwOccurences // calculate rating
4. Sort CatAccu by value
5. Return the ordered list of (CategoryID, rating)
for all corresponding CatAccu[x] values about a given threshold.
现在,我想到了几个简单的改进:(我会认真考虑前两个,并考虑其他的;决定每一个都与项目的范围、要分类的数据的统计特征和其他因素密切相关……)
此外,除了计算评级本身外,我们还应该考虑:
简单的方法 |
|
|
3
0
我也面临着同样的问题,即仅基于关键字创建分类器。我有一个类关键字映射器文件,其中包含类变量和特定类中出现的关键字列表。我带着以下算法来做,它真的很好用。
|
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |