我正在尝试使用不同的自然语言处理特征进行KNN学习。例如,我想使用词袋模型和局部词性标签。
单独来看,我对如何使用单一特征计算相似度有一些想法。比如,使用余弦相似度来处理词袋模型的计数,或者使用汉明距离来处理词性标签。
然而,我不知道如何将这两种方法结合起来。这方面的人通常是如何做的?能有人帮我解答这个问题吗?
提前感谢。
回答:
我会使用两种特征的简单线性组合。你可以分别使用余弦相似度比较词袋模型的向量,使用汉明距离比较词性标签,然后取两种结果的平均值。假设余弦比较和汉明距离的结果如下所示:
rank score cosine Hamming-------------------------------1 red blue2 blue yellow3 yellow orange4 orange red
那么最终的排名(基于上述排名分数,你可以根据需要更改为例如指数尺度,如果你想更加强调高排名的标签)将如下所示(分数越低越好):
label total score--------------------blue 3red 5yellow 5orange 7
因此,输出标签将是blue
。在这种情况下,线性组合对余弦相似度输出和汉明距离输出各赋予50%的权重。你可以尝试不同的权重(例如,70%余弦,30%汉明)来找到两种度量之间的最佳平衡。