SORU
16 Mart 2010, Salı


Nasıl metin girdileri bir dizi ortak / önemli ifadeler ayıklamak için

Kalemler MYSQL veritabanından ham HTML metin bir dizi var. Bu girişler (en sık görülen tek cümle, ve ideal olarak, kelime-kelime eşleme değil, zorlama değil) en yaygın sözcük bulmak istiyorum.

Benim örnek biçiminde verilen bir restoran yorumları yüzlerce,: 3 parçacıkları gösterir yelp.com üzerinde herhangi bir inceleme

"Hamburger deneyin" (44 yorumları)

örneğin, "Gözden Geçirme Olayları" bu sayfanın bölüm:

http://www.yelp.com/biz/sushi-gen-los-angeles/

Yüklü ve onunla biraz oynadım ben. NLTK var, ama dürüst olmak gerekirse seçenekleri tarafından boğulmuş. Bu oldukça yaygın bir sorun gibi görünüyor ve burada arama yaparak basit bir çözüm bulmak mümkün olmamıştır. Herhangi bir yardım için şimdiden teşekkür ederiz.

CEVAP
16 Mart 2010, Salı


Sadece en yaygın ifadeler istemezsin sanıyorum, ama daha ziyade en ilginç istiyorsunsöz öbeklerinin. Aksi takdirde, ifadeler ve daha az ilginç ve bilgilendirici ortak kelimeler deyimler oluşan bir overrepresentation ile sonuçlanabilir.

Bunu yapmak için, aslında veri n-gram özü ve en yüksek olanları bulmak için isteyeceksiniz point wise mutual information (PMI). Yani co-ortaya çıkan kelimeleri bir araya beklediğiniz çok daha fazla şans bulmak istiyorum.

NLTK collocations how-to kod yaklaşık 7 satır bunu yapmak için nasıl, örneğin kapsar

import nltk
from nltk.collocations import *
bigram_measures = nltk.collocations.BigramAssocMeasures()
trigram_measures = nltk.collocations.TrigramAssocMeasures()

# change this to read in your data
finder = BigramCollocationFinder.from_words(
   nltk.corpus.genesis.words('english-web.txt'))

# only bigrams that appear 3  times
finder.apply_freq_filter(3) 

# return the 10 n-grams with the highest PMI
finder.nbest(bigram_measures.pmi, 10)  

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010
  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013