2010-02-08 2 views
3

Прежде всего, спасибо за чтение моего вопроса.В java - группировка аналогичных значений

Я использовал TF/IDF, тогда по этим значениям я вычислил подобие косинуса, чтобы увидеть, сколько документов больше похоже. Вы можете увидеть следующую матрицу. Имена столбцов похожи на doc1, doc2, doc3, а имена строк такие же, как doc1, doc2, doc3 и т. Д. С помощью следующей матрицы я вижу, что doc1 и doc4 имеют сходство 72% (0.722711142). Это правильно, даже если я вижу оба документа, они похожи. У меня 1000 документов, и я вижу каждую частоту документа. в матрице, чтобы увидеть, как многие из них похожи. Я использовал различные кластеризации, такие как k-mean и agnes (иерархия), чтобы объединить их. Он создал кластеры. Например, Cluster1 имеет (doc4, doc5, doc3), потому что они имеют значения (0.722711142, 0.602301766, 0.69912109) более близко соответственно. Но когда я вижу вручную, если эти 3 документа действительно одинаковы, они НЕ. :(Что я делаю или я должен использовать что-то другое, кроме кластеризация ??????

1    0.067305859 -0.027552299 0.602301766 0.722711142  
    0.067305859 1    0.048492904 0.029151952 -0.034714695 
    -0.027552299 0.748492904 1    0.610617214 0.010912109  
    0.602301766 0.029151952 -0.061617214 1    0.034410392  
    0.722711142 -0.034714695 0.69912109 0.034410392 1    

PS: Значения могут быть неправильно, это просто чтобы дать вам представление Если у вас есть. вопрос, пожалуйста, спросите Спасибо

+0

любой отзыв ?? любая помощь?????????????????????? – user238384

+0

второстепенный вопрос: существующие решения этой проблемы не могут быть применены или почему вы разрабатываете ее с нуля? Мое чувство говорит, что люцен (или solr) должен был также реализовать это ... – Karussell

+0

Ну, что такое lucene или solr. Я уже сделал это. Теперь у меня есть файл CSV, но у меня вопрос другой. Если вы можете объяснить свой вопрос. Я могу ответить на это более эффективно. – user238384

ответ

1

Я не знаком с TF/IDF, но этот процесс может пойти не так, во многих этапах, как правило:.?

1, вы удалите

стоп-слова

2, ли вы применяете стеблирование?

3, Вы нормализуете частоты для длины документа? (Возможно, у TFIDF есть решение для этого, я не знаю)

4, Clustering - метод обнаружения, но не священный Грааль. Документы, которые он получает в виде группы, могут быть связаны более или менее, но это зависит от данных, настройки, алгоритма кластеризации и т. Д.

Чего вы хотите достичь? Какая у вас настройка? Удачи!

+0

Привет, Рон, Спасибо за ваш ответ. Да, я использовал все, что вы упомянули выше. У меня большая матрица подобия, и теперь я хочу сгруппировать все подобные документы. Например, если 10 документов подобны документу 15, то должен быть один кластер, который содержит 11 документов (от 1 до 10 и 15 документов), но кластеризация работает на расстоянии и группирует документ. который имеет частоту. более закрытие позволяет говорить на 70%, а весь документ в этом кластере отличается :( Есть ли какой-либо другой метод, который вы можете упомянуть? – user238384

+0

Правильный метод кластеризации во многом зависит от распределения вашего пространства документа. Вы можете попробовать алгоритм CURE , или DENCLUE. Или существуют кластеры, которые работают с графическим представлением данных о связности, например, Markov Clustering (http://www.micans.org/mcl/) – ron

1

Мой подход заключается в том, чтобы не использовать предварительно рассчитанные значения сходства вообще, потому что сходство между документами должно быть найдено с помощью самого алгоритма кластеризации. Я бы просто установил пространственное пространство с одним столбцом на каждый член в корпусе, так что количество столбцов равно размеру словаря (если вы хотите) минус стоп-слово. Каждое значение функции содержит относительную частоту соответствующего термина в этом документе. Я думаю, вы могли бы использовать значения tf * idf, хотя я бы не ожидал, что это поможет слишком много. В зависимости от используемого алгоритма кластеризации распознающая способность определенного термина должна быть найдена автоматически, т. Е. Если термин появляется во всех документах с одинаковой относительной частотой, то этот термин не очень хорошо различает классы, и алгоритм должен обнаруживать, что ,

+0

Прошу прощения, но я не мог понять. , Я вычисляю подобие основы на LSI и VSM.Классирование не может помочь в сходстве.Если это объясняет, какой из них и как? – user238384

+0

В кластеризации, doc - это точка в пространстве объектов и соответствующих точках данных групп алгоритмов которые являются близкими друг к другу.Если функции представляют собой частоты слов, то документы, содержащие одни и те же слова, то есть * аналогичные * документы, будут в одной группе (ей). Это все кластеризация: группировка si (здесь: документы), где сходство зависит от используемых функций. Я думаю, что главы 16-18 в этой книге: http://nlp.stanford.edu/IR-book/information-retrieval-book.html поможет вам (он доступен бесплатно онлайн). – ferdystschenko

Смежные вопросы