NLTK

2011-12-18 14 views
6

içinde StanfordTagger'ı örnekleme ve kullanma Bu sorunun yeni-doğası için özür dilerim - Python paketleme ve ad alanlarını anlamaya çalışıyorum, ancak daha ince noktalar beni çekiyor gibi görünüyor. Zekice, Python paketleyiciyi Stanford konuşma-konuşmacısına kullanmak istiyorum.NLTK

st = StanfordTagger('bidirectional-distsim-wsj-0-18.tagger') 
st.tag('What is the airspeed of an unladen swallow ?'.split()) 
    [('What', 'WP'), ('is', 'VBZ'), ('the', 'DT'), ('airspeed', 'NN'), ('of', 'IN'), ('an', 'DT'), ('unladen', 'JJ'), ('swallow', 'VB'), ('?', '.')] 

Bu harika görünüyor, ama doğru ad benim yerel Python + NLTK kurulumda göstermek için görünmektedir olamaz (Ben: Ben hiçbir sorun bir kullanım örneği sağlar belgelere here bulmakta vardı son NLTK sürümü ve) 2.7.x yanı sıra Python 2.6.x aşağıda çalıştık:

>>> from nltk.tag.stanford import StanfordTagger 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: No module named stanford 
:

>>> import nltk 
>>> from nltk import * 
>>> from nltk.tag import stanford 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: cannot import name stanford 

Ben de aynı sonucu, bu ithalat beyanı çalıştı

sorun benim nltk lib doesnt içermesi yani: 0 SO üzerinde buralarda arama, ben afiş aynı sorunu yaşıyor gibi görünüyor, ama birlikte ad adım geçmiş olsun yapabiliyor this question, bulunan stanford modülü. Ben de aynı şeyi uygun klasöre kopyaladım ve aynı şekilde derledim.

Gerçekten de aynı sorun var, çünkü hayatımın NLTK'ye nasıl modül ekleyeceğine dair bir belge bulamadığım için. NLTK web sitesinde okuduğum her şey, Stanford modülünün zaten temel kurulumda paketlenmesi gerektiğini ima ediyor. Yani, iki parçadan oluşan bir soru: Bu özel konu atlatmak ve Python gelen StanfordTagger kullanmaya başlamadan için

  1. (Özel) Herhangi önerileri? Biliyorum kolayca kavanozu doğrudan arayabilir ve daha sonra Python - çıktısını yorumla - Python sarmalayıcısının zaten yaptığı gibi - ama bunu başka bir şey yapmazsak, prensibim dışında çalışmak isterim.
  2. (Genel) eksik ambalaj sorunları veya yukarıdaki gibi bağımlılıkları araştırmak için iyi bir pythonic yaklaşım nedir?

cevap

-1

Öneriler: a. PC'nizde yüklü olan nltk dizinine bakın. Benim kontrol ettim ve stanford.py orada değil (yani nltk/tag/dizininde eksik). Bunu çalıştırmak için hızlı bir şekilde bulabilirsiniz:

import distutils.sysconfig 
print distutils.sysconfig.get_python_lib()+'/nltk/tag/' 

b. Eğer orada değilse, o zaman stanford.py dosyasını PC'nizdeki nltk/tag dizinine yazdığınız kaynaktan kopyalayın (adım a).

İnşallah çalışır.

+0

Distutils.sys dosyasının önerisi için teşekkür ederiz. Bana bildiğim şeyi (ve teyit ettiğinizi) anlattı - stanford POS tagger'ın artık NLTK dağıtımının bir parçası olmadığı ve belgelerin güncel olmadığı görüldü. Nihayetinde Stanford tagger'ı Python ile arayüzlemek yerine toplu modda kullanmaya karar verdim, ama açık bir şeyi kaçırmadığımı bilmek güzel. – Inverseofverse