Benzer bir soru varsa komut bulmak için

2 Cevap php

, G'day

Ben bir SSS sistemi oluştururken kulüpler ve kullanıcı benzer bir soru sorulmuş olup olmadığını görmek mümkün olmalıdır. Herkes bu yapacak AI çeşit sahip bir komut (php veya javascript, tercihen veya muhtemelen actionscript) bilen varsa sadece merak? Ben bir soru yazdığınız gibi, ilgili sorular altında verilmiştir stackoverflow fark ettik.

Herhangi bir tavsiye mutluluk duyacağız.

Teşekkür.

2 Cevap

Ben sizin için umut olabilir en iyi basit bir arama motoru için olduğunu düşünüyorum: kelimelerle soruyu bölünmüş ve bir rdbms eg sorusuna karşı sözcükler kaydetmek

Tablo sorular (id, metin, ....)

Tablo sözler (question_id, kelime)

Sonra id $ x ile yeni bir soruya benzer sorular almak için:

SELECT prev.id, prev.text, count(*) AS common_words
FROM questions prev, words prev_words, words curr_words
WHERE curr_words.question_id=$x 
AND curr_words.word=prev_words.word
AND prev_words.question_id=prev.id
GROUP BY id, text
ORDER BY COUNT(*) DESC
LIMIT.....?

Kesinlikle iade kısa liste üzerinde daha ayrıntılı karşılaştırma yöntemleri uygulamak olabilir - ama bu kesinlikle ilk adım olmalıdır.

C.

Bu soru kolayca veritabanı sitenizin nasıl işlediğini (bir tane var varsayarak) ya da neye benzediğini bilmeden cevap değildir.

Sen benzerlik birçok şey kapalı temel olabilir:

  1. Ortak bir kategori paylaş
  2. Hisse sık etiketleri
  3. Share common keywords within their body
    These keywords are often determined after common-words ('and', 'is', 'the', 'it', vs ..) are stripped from the string, leaving uncommon words ('C#', 'database', 'questions') to perform lookups with.
  4. Kullanıcılar açıkça benzer onları ilan
  5. vs ..

Bu benzerlik belirlerken dikkate almanız gereken tüm öğeleri türleri vardır. Bu yardımcı olur umarım! Daha spesifik cevaplar almak için gelecekte daha fazla özel sorular ile dönmek.