Trudno jest stworzyć własny model openNLP. Czy ktoś może mi powiedzieć, jak zrobić własny model. Jak należy wykonywać treningi.Trening własny model w opennlp
Co powinno być wejściem i gdzie zostanie zapisany plik modelu wyjściowego.
Trudno jest stworzyć własny model openNLP. Czy ktoś może mi powiedzieć, jak zrobić własny model. Jak należy wykonywać treningi.Trening własny model w opennlp
Co powinno być wejściem i gdzie zostanie zapisany plik modelu wyjściowego.
Być może ten artykuł ci pomoże. Opisuje on, jak to zrobić TokenNameFinder szkolenia z danych pochodzących z Wikipedii ...
Link nie działa. – Ruthwik
@Ruthwik dzięki za komentarz. Link został zaktualizowany. –
https://opennlp.apache.org/docs/1.5.3/manual/opennlp.html
Ta strona jest bardzo przydatna, pokazuje zarówno w kodzie, a za pomocą OpenNLP aplikacja do modelowania pociągów dla różnych typów, takich jak ekstrakcja jednostek i część mowy itp.
Mogę dać ci som przykłady kodu tutaj, ale strona jest bardzo przejrzysta w użyciu.
Teoria mądry:
Zasadniczo należy utworzyć plik zawierający listę rzeczy, które chcesz trenować
np.
Sport [spacja] Jest to strona o piłkę nożną, rugby i rzeczy
Politics [spacja] Jest to strona o Tony Blair jako premier.
Format jest opisany na powyższej stronie (każdy model oczekuje innego formatu). po utworzeniu tego pliku uruchamiasz go za pomocą interfejsu API lub aplikacji opennlp (za pośrednictwem wiersza poleceń) i generuje plik .bin. Po utworzeniu tego pliku .bin można go załadować do modelu i zacząć go używać (jak na api w powyższej witrynie).
Albo mógł powiedzieć RTFM, aby zaoszczędzić sobie trochę pisania. – demongolem
Pozwól mi wskazać najnowszą dokumentację na http://opennlp.apache.org/docs/1.8.1/manual/opennlp.html –
Najpierw należy przeszkolić dane z wymaganą jednostką.
Zdania powinny być oddzielone znakiem nowej linii (\ n). Wartości powinny być oddzielone od i znaczników znakiem spacji.
Powiedzmy, że chcemy stworzyć modelu medycyny jednostki, więc dane powinny być mniej więcej tak:
<START:medicine> Augmentin-Duo <END> is a penicillin antibiotic that contains two medicines - <START:medicine> amoxicillin trihydrate <END> and
<START:medicine> potassium clavulanate <END>. They work together to kill certain types of bacteria and are used to treat certain types of bacterial infections.
Można odwołać próbkę dataset np. Dane treningowe powinny mieć co najmniej 15 000 zdań, aby uzyskać lepsze wyniki.
Dalej można użyć TokenNameFinderTrainer Opennlp. Plik wyjściowy będzie w formacie .bin.
Oto przykład: Writing a custom NameFinder model in OpenNLP
Aby uzyskać więcej informacji, przekazanie Opennlp documentation
skopiować dane w danych i uruchomić poniżej kod, aby uzyskać własne mymodel.bin.
może odnosić się do danych = https://github.com/mccraigmccraig/opennlp/blob/master/src/test/resources/opennlp/tools/namefind/AnnotatedSentencesWithTypes.txt
public class Training {
static String onlpModelPath = "mymodel.bin";
// training data set
static String trainingDataFilePath = "data.txt";
public static void main(String[] args) throws IOException {
Charset charset = Charset.forName("UTF-8");
ObjectStream<String> lineStream = new PlainTextByLineStream(
new FileInputStream(trainingDataFilePath), charset);
ObjectStream<NameSample> sampleStream = new NameSampleDataStream(
lineStream);
TokenNameFinderModel model = null;
HashMap<String, Object> mp = new HashMap<String, Object>();
try {
// model = NameFinderME.train("en","drugs", sampleStream, Collections.<String,Object>emptyMap(),100,4) ;
model= NameFinderME.train("en", "drugs", sampleStream, Collections. emptyMap());
} finally {
sampleStream.close();
}
BufferedOutputStream modelOut = null;
try {
modelOut = new BufferedOutputStream(new FileOutputStream(onlpModelPath));
model.serialize(modelOut);
} finally {
if (modelOut != null)
modelOut.close();
}
}
}
Witamy w Stack Overflow! Chociaż ten kod może pomóc w rozwiązaniu problemu, nie wyjaśnia, dlaczego _why_ i/lub _how_ to odpowiada na pytanie. Zapewnienie tego dodatkowego kontekstu znacznie poprawiłoby jego długoterminową wartość edukacyjną. Proszę [edytuj] swoją odpowiedź, aby dodać wyjaśnienie, w tym, jakie ograniczenia i założenia mają zastosowanie. –
Dla których narzędzie ty tworzenia modelu? – wcolen