Về mặt lý thuyết là không thể khôi phục một từ cụ thể từ thân cây, vì một gốc có thể phổ biến với nhiều từ . Một khả năng, tùy thuộc vào ứng dụng của bạn, sẽ là xây dựng một cơ sở dữ liệu của mỗi thân được ánh xạ tới một mảng của một vài từ. Nhưng sau đó bạn sẽ cần phải dự đoán một trong những từ đó là thích hợp cho một gốc để tái chuyển đổi.
Là một giải pháp rất ngây thơ cho vấn đề này, nếu bạn biết các thẻ từ, bạn có thể thử lưu trữ từ với các thẻ trong cơ sở dữ liệu của bạn:
run:
NN: runner
VBG: running
VBZ: runs
Sau đó, đưa ra các gốc "chạy" và thẻ "NN", bạn có thể xác định rằng "Á hậu" là từ có thể xảy ra nhất trong ngữ cảnh đó. Tất nhiên, giải pháp đó là hoàn hảo. Đáng chú ý, bạn cần phải xử lý thực tế rằng cùng một dạng từ có thể được gắn thẻ khác nhau trong các ngữ cảnh khác nhau. Nhưng hãy nhớ rằng bất kỳ nỗ lực nào để giải quyết vấn đề này sẽ là tốt nhất, gần đúng.
Chỉnh sửa: từ các nhận xét bên dưới, có vẻ như bạn có thể muốn sử dụng lemmatization thay vì xuất phát. Dưới đây là cách lấy các từ lemmas của các từ bằng cách sử dụng các số Stanford Core NLP tools:
import java.util.*;
import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.ling.*;
import edu.stanford.nlp.ling.CoreAnnotations.*;
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma");
pipeline = new StanfordCoreNLP(props, false);
String text = "Hello, world!";
Annotation document = pipeline.process(text);
for(CoreMap sentence: document.get(SentencesAnnotation.class)) {
for(CoreLabel token: sentence.get(TokensAnnotation.class)) {
String word = token.get(TextAnnotation.class);
String lemma = token.get(LemmaAnnotation.class);
}
}
Các từ như chạy làm việc tốt với thân cây. Tôi đang nói về những từ như efficieny. efficieny trên thân trở thành hiệu quả không có ý nghĩa. Những gì tôi đang lập kế hoạch để đi kèm là chuyển đổi hiệu quả thành hiệu quả bất kể hiệu quả sản xuất (hiệu quả/từ nào khác) – CTsiddharth
Sau đó, có thể bạn đang tìm kiếm sự lemmatization (tìm mẫu "cơ sở" của từ đó - những gì sẽ được liệt kê trong từ điển) , không xuất phát (tìm "gốc" của từ). Thân cây có thể có nhiều từ cơ bản - "hiệu quả" -> "hiệu quả" -> "hiệu quả" không có ý nghĩa. Một bổ đề tương ứng với chính xác một từ cơ bản: "hiệu quả" -> "hiệu quả", "hiệu quả" -> "hiệu quả", "hiệu quả" -> "hiệu quả". Trong gốc, bạn mất cả hai sự uốn cong và từ cơ sở. Trong lemmatization, bạn chỉ mất uốn. Mã tôi vừa thêm vào bài đăng sẽ giúp bạn bắt đầu với các công cụ lemmatization của Stanford. – user2398029
Xin chào .. hãy xem [câu hỏi này] (http://stackoverflow.com/questions/9528080/error-in-stanford-nlp-core#comment12070615_9528080) của tôi và giúp tôi! – CTsiddharth