2009-12-28 21 views
11

Tôi đang sử dụng JAWS để truy cập WordNet. Cho một từ, có cách nào để phát hiện nếu nó là một danh từ thích hợp? Dường như các syns có các loại từ vựng khá thô.Phát hiện danh từ thích hợp với WordNet?

Để làm rõ, không có ngữ cảnh cho các từ - chúng chỉ được trình bày riêng lẻ. Nếu một từ có thể hình dung được sử dụng như một danh từ chung, nó có thể chấp nhận được. Vì vậy, "đánh dấu" là tốt, bởi vì mặc dù nó có thể là tên của một ai đó nó cũng có thể đề cập đến một điểm. Tuy nhiên, "Châu Phi" thì không.

Trả lời

1

Thông tin đó dường như không được lưu trữ đặc biệt trong WordNet. Tuy nhiên, bạn có thể xem từ đầu tiên của một danh từ sysnet để xem nó có được viết hoa hay không. Không chắc chắn làm thế nào chính thức đó là nhưng nó dường như làm việc nói rằng bay không phải là một danh từ thích hợp và Pháp là.

+1

này sẽ xem xét tất cả các danh từ lúc bắt đầu của một câu là thích hợp, mặc dù. Tôi thực sự muốn chúng tôi thay đổi quy tắc ngữ pháp của chúng tôi cho những thứ như thế này khi họ giới thiệu sự mơ hồ và không có bất kỳ chức năng nào theo như tôi có thể nói ngoài thẩm mỹ. –

+1

Thực ra, tôi vẫn không nhìn thấy những gì đang ở đầu câu phải liên quan đến mọi thứ. Thay vì chỉ kiểm tra danh từ của các từ được viết hoa tại sao không kiểm tra từng từ cho danh từ đầu tiên. Sau đó kiểm tra xem nó có được viết hoa trong WordNet hay không. Nó không tạo sự khác biệt nếu nó được viết hoa trong tài liệu gốc của bạn. WordNet sẽ trả về "sách" bất kể bạn đã chuyển "sách" hay "Sách". Đối với vấn đề "đánh dấu" và "Đánh dấu", chỉ cần tìm kiếm tất cả các dạng của một tập hợp danh từ để xem liệu có bất kỳ phần nào trong số chúng không được tài trợ không. – Pace

13

Thật không may, bạn sẽ không thể xác định một cách đáng tin cậy thông tin danh từ thích hợp từ các bộ synnet WordNet. Những gì bạn đang tìm kiếm là Named Entity Recognition. Có liên kết đến một số phiên bản có sẵn trong Java từ trang wikipedia. Cá nhân tôi sẽ giới thiệu Stanford NER hoặc LingPipe.

Cập nhật:

Dựa trên những hạn chế gia tăng của no context các từ, bạn có thể sử dụng vốn là chỉ số chính và sau đó kiểm tra lại WordNet để xem nếu từ đó có thể được sử dụng như một danh từ. Có lẽ một cái gì đó như thế này:

String word = "foo"; 
boolean isProperNoun = false; 
if (Character.isUpperCase(word.charAt(0))) { 
    WordNetDatabase database = WordNetDatabase.getFileInstance(); 
    Synset[] synsets = database.getSynsets(word, SynsetType.NOUN); 
    isProperNoun = synsets.length > 0; 
} 

Điều đó sẽ loại bỏ dương tính giả như thế này:

Nếu bạn xây dựng nó ...
Như bạn muốn ...
Oh Romeo, Romeo ...

Và vẫn bắt chỉ là danh từ vốn trong

Trong Sách của Đánh dấu nó nói ...
Bạn đã nghe Các Roots hay The Ai thời gian gần đây?

nhưng vẫn cung cấp cho bạn dương tính giả trên

Đánh dấu trường hợp đầu tiên ...
Sách 'em, Danno.

vì chúng có thể, nhưng không có ngữ cảnh bạn không biết.

Nếu bạn muốn thực sự phức tạp, bạn có thể theo dõi cây hypernym trên bất kỳ danh từ nào để xem bạn có đạt được thứ gì đó hiển nhiên như 'công ty' hay 'quốc gia' hay không.Tuy nhiên, lần cuối cùng tôi làm việc với WordNet (4 năm trước), các mối quan hệ hypernym/hyponym không đáng tin cậy hoặc nhất quán, có thể gây ra rất nhiều âm bản sai (và không cải thiện những sai lầm tích cực mà tôi đã đề cập ở trên) phụ thuộc ngữ cảnh).

+1

NER thường phụ thuộc vào ngữ cảnh hiện tại. –

+0

Tôi đã sửa đổi câu trả lời của mình để phản ánh sự thiếu ngữ cảnh. –

2

Hãy để tôi chạy điều này trong quá khứ. Bạn có thể phải thực hiện chạy thông qua một số sách khác bằng tiếng Anh để hiểu rõ hơn thực tế là người ta không thể xác định một phần của từ ngữ trong ngữ cảnh.

Điều tốt nhất bạn có thể làm là thử nghiệm loại trừ ... xác định rằng WordNet biết không sử dụng trong một phần nhất định của lời nói. Trong một số trường hợp, bạn có thể thấy rằng chỉ một phần của lời nói được liệt kê trong WordNet. Ví dụ tôi biết không sử dụng "xe hơi" ngoài danh từ.

Phân biệt thích hợp danh từ những thứ phổ biến thậm chí còn khó khăn hơn. Chắc chắn bạn có thể sử dụng heuristic ... một danh từ mà không phải là từ đầu tiên của một câu và được viết hoa nhưng không phải trong ALLCAPS có lẽ là một danh từ thích hợp.

Cuối cùng, sự khác biệt là một trong ngữ nghĩa hơn là phân tích từ vựng. Tôi nghi ngờ bạn sẽ tìm thấy một giải pháp hợp lý mạnh mẽ dựa trên việc tìm kiếm các từ trong WordNet. Tôi nghĩ bạn sẽ cần phải phân tích cú pháp ngữ pháp ngôn ngữ tự nhiên trước khi bạn có thể trích xuất một cách đáng tin cậy danh từ, ít phát hiện hơn danh từ thích hợp trong văn xuôi.

2

Nếu bạn sử dụng dòng lệnh Linux để sử dụng Wordnet, bạn có thể sử dụng 'wn -synsn' để nhận tất cả các tập hợp của một từ. Danh từ thích hợp sẽ được viết hoa. Ví dụ:

$: wn mark -synsn 

    Synonyms/Hypernyms (Ordered by Estimated Frequency) of noun mark 
    15 senses of mark              

    Sense 1 
    mark, grade, score 
     => evaluation, valuation, rating 
    . 
    . 
    . 
    Sense 8 
    Mark, Saint Mark, St. Mark 
     INSTANCE OF=> Apostle, Apostelic Father 
     INSTANCE OF=> Evangelist 
     INSTANCE OF=> saint 

Nhưng, nghiêm túc, xin vui lòng không chỉ dựa vào Wordnet cho việc này. Có nhiều gazillions có khả năng của danh từ thích hợp mà Wordnet sẽ không tìm nạp bất kỳ thông tin nào. Hãy thử tên Henrik, ví dụ!

Bạn có thể, tuy nhiên, xây dựng một bối cảnh cho văn bản của bạn w từ bộ dữ liệu như corpus Google n-gram, và sử dụng bối cảnh như vậy để xây dựng một phân loại mà trả về một số niềm tin (ví dụ, phân loại có thể nói w là một danh từ riêng với 0 < = c < = 1 sự tự tin.)

Các vấn đề liên quan