2011-04-08 15 views
9

Metin cümlelerini işlemek veya ingilizce gibi normal bir insan dilinde geçerli olan cümleler oluştururken bir yapıyı takip etmek için algoritmalar hakkında bilgi arıyorum. Bu alanda çalışıp öğrenmeye başlayabileceğim projeler olup olmadığını bilmek isterim.Bilgisayar AI algoritması cümleler yazmak için?

Örneğin, bir programa bir isim verdiysem, bir eş anlamlı kelime (ilgili sözcükler için) ve bir konuşma parçası (her kelimenin bir cümleye ait olduğu anlaşılmalıdır) sağladıysa - geçerli cümle?

Eminim, bu tür araştırmaların birçok alt bölümü olduğundan eminim ki, bu da buna yol açabilir.

cevap

1

Rastgele cümleler yazmak o kadar da zor değil. Herhangi bir ayrıştırıcı ders kitabının basit-ingilizce-dilbilgisi örneği, dilbilgisi açısından doğru olmayan anlamsız cümleler oluşturmak için tersine çalıştırılabilir. Bu esas görevi olmasına rağmen

başka yolu da, NLG (Doğal Dil Nesil) olarak adlandırılır http://www.perlmonks.org/index.pl?node_id=94856

9

Bu gibi eski BYTE dergisi travesti veya malzeme ile, popüler kelime-lü-rastgele-yürüyüş yaptı ise Bir dizi veriyi tanımlayan metin oluşturma. Ayrıca tamamen rastgele cümle üretimi konusunda da birçok araştırma var.

Bir başlangıç ​​noktası, cümleler oluşturmak için Markov zincirlerini kullanmaktır. Bunun nasıl yapılacağı, her konuşma bölümünde geçişin ne kadar muhtemel olduğunu söyleyen bir geçiş matrisine sahip olmanızdır. Ayrıca, bir cümlenin en olası başlangıç ​​ve bitiş konuşma bölümlerine de sahipsiniz. Bunları bir araya getirin ve olası konuşma bölümleri oluşturabilirsiniz.

Şimdi, işin çok uzağındasınız, bu, her şeyden önce, bitişik kelimeler (iki gram olarak da adlandırılır) arasındaki olasılığı göz önünde bulundurduğunuzdan, çok iyi bir sonuç vermeyecektir, bu yüzden ne yapmak istediğinizi uzatmaktır. Bu, örneğin, üç bölümlü konuşma arasındaki geçiş matrisinde (bu bir 3D matris yapar ve size trigramlar verir) bakar. İşleme gücüne bağlı olarak 4 gram, 5 gram vb. Uzayabilirsiniz ve eğer corpusunuz bu matrisi doldurabiliyorsa. Son olarak, nesne anlaşması (konu-söz-anlaşması, sıfat-fiil-anlaşması (İngilizce değil), vb.) Ve gerginlik gibi şeyleri düzeltmeniz gerekir, böylece her şey uyumludur.

14

Eğer doğal dil üretme, http://en.wikipedia.org/wiki/Natural_language_processing

Cümle nesil doğal dil işleme üst disiplinidir denir aradığınız alan ya sen cümleler olmak istiyorum kadar iyi gerçekten kolay veya çok zor değişir. Şu anda, verilen isimler hakkında (söz dizimi ile bile olsa)% 100 duyarlı cümleler üretebilecek programlar yoktur - eğer demek istediyseniz. Öte yandan, bazen sıradan olmayan bir saçmalıktan memnun kalacak olursanız, n-gram tabanlı bir cümle üretecini deneyebilirsiniz. Bunlar sadece sırayla görünme eğilimi olan kelimelerin bir araya gelmesini ve 3-4 gramlı jeneratörler bazen oldukça iyi görünüyorlar (her ne kadar bunları bir çok spam e-postayı üreten olarak tanıyacaksınız). http://www.nltk.org/book/ch02.html#generating-random-text-with-bigrams

+0

İkinci bağlantı kimlik doğrulaması gerektirir! – Skynet

3

Evet:

İşte NLTK kullanarak n-gram tabanlı neslin temelleri bir intro, bu. AI teknikleri ile NLG'de problem çözme ile ilgili bazı çalışmalar var. Bildiğim kadarıyla, şu anda, herhangi bir pratik kullanım için kullanabileceğiniz hiçbir yöntem yoktur.

Arka plana sahipseniz, Saarland Üniversitesi'nden Alexander Koller'ın çalışmalarını öğrenmenizi öneririz. NLG'yi PDDL'ye nasıl kodlandıracağını anlatıyor. Okumak istediğiniz ana yazı "Bir planlama problemi olarak ortaya çıkan cümle" dir.

NLP'de herhangi bir arka planınız yoksa, sadece Michael Collings veya Dan Jurafsky'nin çevrimiçi kurslarını veya ders materyallerini arayın.

İlgili konular