Tôi có một văn bản mà tôi muốn trích xuất các cụm từ danh từ nó. Tôi có thể dễ dàng có được phân tích cú pháp đã gõ cho văn bản mà tôi có, nhưng tự hỏi làm thế nào tôi có thể trích xuất các cụm từ danh từ trong văn bản?Trích xuất các cụm từ danh từ một tập tin văn bản bằng cách sử dụng phân tích cú pháp stanford
Trả lời
Bạn có thể sử dụng Stanford Core NLP để gắn thẻ POS. Bạn có thể tìm thấy mã mẫu tại http://nlp.stanford.edu/software/corenlp.shtml#Usage, đây có thể là điểm khởi đầu tốt để thử nghiệm. Bạn sẽ cần phải cung cấp cho tokenize, phân chia và pos như các thuộc tính. Điều này xuất ra một danh sách các thẻ với các thẻ tương ứng của chúng.
Toàn bộ danh sách thẻ có thể được viwed tại http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html. Tất cả các thẻ danh từ sẽ bắt đầu bằng NN. Thực hiện kiểm tra này sẽ cung cấp cho bạn các mã thông báo bắt buộc.
Hãy thử điều này link. Tôi không chắc liệu các tagger stanford pos và tagger có sẵn trong corenlp có giống nhau hay không nhưng tôi thấy liên kết này hữu ích hơn.
Sau khi gắn thẻ PoS, bạn sẽ phải phát hiện các mẫu như thế này (Tính từ | Danh từ) * (Đề xuất danh từ)? (Tính từ | Danh từ) * Danh từ
Hãy thử điều này link để biết chi tiết về phát hiện cụm từ danh từ.
Bạn có thể trích xuất cụm từ danh từ từ cây bằng cách sử dụng mã sau. Nó giả định bạn đã phân tích cú pháp câu lưu trữ trong phân tích cú pháp (ví dụ: phân tích cú pháp được đầu ra của lớp LexicalizedParser áp dụng phương pháp)
public static List<Tree> GetNounPhrases()
{
List<Tree> phraseList=new ArrayList<Tree>();
for (Tree subtree: parse)
{
if(subtree.label().value().equals("NP"))
{
phraseList.add(subtree);
System.out.println(subtree);
}
}
return phraseList;
}
Tôi đã cố gắng để có được stanford gõ phân tích cú pháp, nhưng vẫn băn khoăn thẻ nào được đại diện các cụm danh từ! –
U cần các công cụ NLP. kiểm tra câu hỏi này http://stackoverflow.com/questions/1889675/extract-nouns-from-text-java –
Tại sao bạn sử dụng trình phân tích cú pháp phụ thuộc ở vị trí đầu tiên? Một trình tạo cây phân tích cú pháp bình thường có vẻ giống như cách đó để đi cho những gì bạn muốn. –