2011-08-05 16 views
9

Tamam, OpenNLPOpenNLP'de Adlandırılmış Öğe Tanıma tanımlayıcısı nasıl eğitilir?

FileReader fileReader = new FileReader("train.txt"); 
ObjectStream fileStream = new PlainTextByLineStream(fileReader); 
ObjectStream sampleStream = new NameSampleDataStream(fileStream); 
TokenNameFinderModel model = NameFinderME.train("pt-br", "train", sampleStream, Collections.<String, Object>emptyMap()); 
nfm = new NameFinderME(model); 

bir şey yoksa yanlış bir şey yapıyorum eğer bilmiyorum dan NER Identifier eğitmek için aşağıdaki kodu var ama sınıflandırma çalışmıyor. Tren.txt'in yanlış olduğunu varsayalım.

Oluşan hatası, tüm simgelerin yalnızca bir tür olarak sınıflandırılmış olmasıdır.

Tren.txt verilerim, aşağıdaki örnekten başka bir şeydir ancak daha fazla varyasyon ve giriş miktarı ile ilgilidir. Başka bir şey, kelimeyi kelimelik bir metinden zamana göre bir metinle sınıflamam ve tüm belirteçleri değil.

<START:distance> 8000m <END> 
<START:temperature> 100ºC <END> 
<START:weight> 50kg <END> 
<START:name> Renato <END> 

Birisi yanlış yaptığımı gösterebilir mi?

+0

Lütfen, hangi OpenNLP sürümünü kullanıyorsunuz? Çünkü OpenNLP 1.5.1 kullanıyorum ve sıcaklık, mesafe ve ağırlık için model dosyası yok. –

+0

@ raj.singh OpenNLP kullanmıyorum. Artık kendi sınıflandırmamı kendi amaçlarım için kodluyorum. –

+0

hi @Renato Dinhani, bende aynı problem var, bana yardım edebilir misiniz, bunu uygulamanızda nasıl çözdünüz? ben benim train.txt istisna gidiyorum bu hatayı aldım: java.security.NoSuchAlgorithmException –

cevap

22

Egzersiz verileriniz doğru değil.

Bir cümle içinde bir bağlamda tüm varlıkları koymalıyız:

At an altitude of <START:distance> 8000m <END> the temperature of boiling water is less than <START:temperature> 100ºC <END> . 
The climber <START:name> Renato <END> is carrying <START:weight> 50kg <END> of equipment. 

Sen eğitim verileri gerçek dünya cümlelerden kaynaklanmaktadır eğer daha iyi sonuçlar var ve sınıflandırmaktayız cümlelerin aynı stile sahip olacak. Örneğin, haberi işleyecekseniz bir gazete corpus kullanarak eğitim almalısınız.

Ayrıca, modelinizi oluşturmak için binlerce cümleye ihtiyacınız olacak! Belki de yüzlerce bootstrap ile başlayabilir ve korpusunuzu geliştirmek ve modelinizi tekrar eğitmek için zayıf modeli kullanabilirsiniz.

Ve elbette bir cümlenin tüm simgelerini sınıflandırmalısınız, aksi halde bir varlığın türüne karar vermek için bir bağlam olmayacaktır.

+0

merhaba wcolen, ben aynı sorun var, bana bazı link veya cümle tren için örnek verebilir misiniz. –

+1

@ Riddhish.Chaudhari, buradaki örneğe bakın: http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/test/resources/opennlp/tools/sentdetect/Sentences.txt?view=markup . Satır başına bir cümle ve yeni paragraf için boş bir satırınız olmalıdır. – wcolen

İlgili konular