2012-02-26 4 views
3

j'ai fait même l'exploration de données et a tiré toutes les questions d'entrevue de Google et Microsoft sur glassdoor: http://letschat.info/?p=34algorithme pour trouver la similarité de questions

http://letschat.info/?p=37

Je les deux listes là-bas.

Ce que je veux faire est peut-être tirer quelques questions d'entrevue d'autres entreprises et essayer de trouver des questions similaires entre plusieurs sources.

Je l'ai fait quelques recherches sur Google et j'ai trouvé ce projet:

http://lucene.apache.org/core/

et je pouvais faire ce qui suit: http://javatechniques.com/blog/lucene-in-memory-text-search-example/

Cependant, cela semble exagéré. Existe-t-il un algorithme plus simple qui pourrait m'aider à trouver des questions similaires? Quel algorithme utilise le débordement de pile? Je pensais à peut-être générer un score basé sur le nombre de mots qui correspondent entre deux questions et le filtrer de cette façon.

Je veux essayer de réduire la liste de questions à une liste de questions uniques.

Mise à jour:

J'ai décidé d'utiliser lucene. Je mets toute ma liste dans un index et la parcourir dans la liste et j'utilise lucene pour chercher 10 items comme ça. J'ajoute ensuite le score des 10 résultats aussi voir quelles questions ont été les plus posées.

Voici le lien vers le code réel: http: //letschat.info/ranking-of-reduced-amazon-questions/

Il est pas trop compliqué. Voici un exemple des résultats: http://letschat.info/ranking-of-reduced-amazon-questions/

de la source d'origine: http://letschat.info/list-of-amazon-questions/

+0

J'aime votre idée d'obtenir un score basé sur le nombre de mots. Chaque fois qu'une question est ajoutée à la liste, vous devez enregistrer la question avec le score sur la base de données. Ensuite, il s'agit d'une requête simple à mesure que de nouvelles questions arrivent? – Induster

Répondre

2

En fait, cosine similarity sur tf-idf vectors, qui est ce que met en œuvre Lucene, est une façon courante (et assez basique) de mesure inter- similitude de document. Je l'essayerais si j'étais vous (bien que vos documents puissent être un peu courts pour que cela fonctionne vraiment bien). Lucene fait aussi de la bonne normalisation de texte.

+0

Je n'essaie pas de faire une similarité entre documents, mais plutôt d'essayer de comparer des phrases, mais je suppose que je pourrais utiliser cette méthode. Merci – SamFisher83

+2

Les phrases ne sont que des documents très courts TF-IDF et la similitude cosinus sont les deux technologies standard pour la similarité textuelle. –

0

Simmetrics est une bibliothèque qui offre plusieurs algorithmes de comparaison de chaînes. Vérifiez ceux qui fonctionnent le mieux pour vos besoins.

Une approche que vous pourriez considérer puisque ce sont des "questions" est d'utiliser des n-grammes, améliore la précision.

+0

Ne semble pas être activement développé – SamFisher83

Questions connexes