Я работаю над системой часто задаваемых вопросов, где у меня есть большое количество вопросов-ответов.Я хочу сгруппировать вопросы, которые похожи.Я использовал npm set-clustering.
Пакет обеспечивает хорошее совпадение на основе сопоставления токенов.Проблема в том, что мне нужно указать количество создаваемых групп.
То, что я хочу, чтобы группировка была автоматической, алгоритм должен сам определять количество создаваемых групп (неконтролируемое обучение)!
Скажите, может ли мне помочь какой-либо другой пакет или платформа?
Вопросы будут такими:
Расскажите мне о цене вашего продукта?
Могу ли я поговорить с вашим агентом?
Привет
Привет, друг
Привет, доброе утро
Сколько это будет стоить мне?
Текущий результат: (Когда я даю '3' в качестве количества групп)
(Привет, привет, друг)
(Расскажите мне о цене вашегоproduct ?, Какова стоимость продукта?)
(Могу я поговорить с вашим агентом ?, Привет, доброе утро)
Я хочу сгруппировать его следующим образом: (Без указания «3» в качестве входных данных)
(Привет, привет, привет, доброе утро)
(Расскажите мне о цене вашего продукта? Какова стоимость продукт ?)
(Могу ли я поговорить с вашим агентом?)
Существующий код:
var cluster = require('set-clustering');
for (let row of resp) {
articles.push({
title: row.que,
tags: row.tags
});
}
function similarity(x, y) {
var score = 0;
x.tags.forEach(function(tx) {
y.tags.forEach(function(ty) {
if (tx == ty)
score += 1;
});
});
return score;
}
// I do not want to provide number of groups over here, I want grouping to be done autonomous
var groups = c.evenGroups(3);
var titles = groups.map(function(group) {
return group.map(function(article) {
return article.title;
});
});
console.log(titles);
Ссылка https://www.npmjs.com/package/set-clustering