2016-08-16 50 views
5

BenSözdizimsel benzerlik/mesafe nltk

Metin1 aşağıdaki gibi 2 metinler vardır: John elma

Metin2 sever: Eğer Mike orange

nefret 2 metni kontrol edin, her ikisi de sözdizimsel olarak benzer ancak semantik olarak farklı bir anlama sahiptir.

Ben NLP ile acemi olduğum gibi nltk kullanarak bunu yapmak için herhangi bir yolu var mı 2 metinler

arasında 2 metinler

2) Semantik mesafe arasındaki

1) Sözdizimsel mesafeyi bulmak istiyorum ?

cevap

2

Evet, ancak nltk ile sınırlı değil. https://en.wikipedia.org/wiki/Part-of-speech_tagging

bu şekilde cümleler map Örneğin:
Metin1: İsim Fiil İsimden
sözdizimsel mesafe için kullanmak bir yolu, belirli bir etikete cümlenin her kelimeyi haritasına Speech etiketleme (POS Etiketleme) bir parçasıdır Text2: Noun Fiil Ad

Daha sonra bu iki cümlenin uzaklığını ölçebilirsiniz.


Ve anlamsal için

, istediğiniz oluşturabilir ve yine her cümlenin anlamsal için

+0

Bu iyi bir yanıttır. Belki de 1. dava için OP yöntemlerini ve belirli bir kelime ağını veya kaynağını önerebilirsiniz? Eminim gelecekteki okuyucular da yön vermek için – slezica

+0

Thanx @Masoud ile ilgileneceklerinden eminim, sadece bir kaç sorum var, nltk içinde SYNTACTIC mesafesini hesaplayan herhangi bir yerleşik kütüphanemiz var mı? Değilse o zaman aynı mesafeyi nasıl ölçecek? sağlayabileceğiniz herhangi bir referans/kaynak –

3

kelimelerin eş anlamlı kesişim bulmaya, semantik kelime ağa ihtiyaç ve cümlenin her kelime için eş bulmak word2vec'i denemek için. Cümle içindeki kelimelerin benzerliğini güvenli bir şekilde ortalayabilir veya kelimeleri sözdizimine göre tartmak için kendi yolunuzla gelebilirsiniz.

from gensim.models import Word2Vec 

model = Word2Vec.load(path/to/your/model) 

model.similarity('apple', 'orange') 
+0

Sözdizimsel mesafe için sağlayabileceğiniz herhangi bir referans? Yerleşik kütüphane desteğimiz var mı? –