6

Tôi đang tìm cách nắm bắt các phép đo bằng cách sử dụng Stanford CoreNLP. (Nếu bạn có thể đề xuất một bộ tách khác, điều đó cũng tốt.)Làm cách nào để có thể nhận biết các phép đo nhận dạng đối tượng Stanford CoreNLP như 5 inch, 5 ", 5 in., 5 in

Ví dụ, tôi muốn tìm 15kg, 15kg, 15,0 kg, 15 kg, 15 lbs, 15 pound, vv Tuy nhiên, giữa các quy tắc khai thác CoreNLPs, tôi don 't xem một cho các phép đo.

Tất nhiên, tôi có thể thực hiện điều này với các quy trình thuần túy, nhưng bộ công cụ có thể chạy nhanh hơn và chúng mang lại cơ hội để chunk ở mức cao hơn, ví dụ: để điều trị gbgigabyte với nhau, và RAMnhớ như các khối xây dựng - ngay cả khi không đầy đủ phân tích cú pháp - khi họ xây dựng đơn vị lớn hơn như 128 gb RAM8 GB bộ nhớ.

Tôi muốn một bộ giải nén cho điều này dựa trên quy tắc, không dựa trên máy tính), nhưng không thấy một bộ phận như là một phần của RegexNer hoặc ở nơi khác. Làm thế nào để tôi đi về điều này?

IBM Named Entity Extraction có thể thực hiện việc này. Các regex được chạy một cách hiệu quả hơn là truyền văn bản thông qua mỗi một. Và các regex được đóng gói để thể hiện các thực thể có ý nghĩa, ví dụ như một tổ hợp kết hợp tất cả các đơn vị đo lường thành một khái niệm duy nhất.

Trả lời

5

Tôi không nghĩ rằng một hệ thống dựa trên luật lệ tồn tại cho nhiệm vụ đặc biệt này. Tuy nhiên, nó không phải là khó khăn để thực hiện với TokensregexNER.Ví dụ, một bản đồ như:

[{ner:NUMBER}]+ /(k|m|g|t)b/ memory? MEMORY 
[{ner:NUMBER}]+ /"|''|in(ches)?/  LENGTH 
... 

Bạn có thể thử sử dụng vani TokensRegex là tốt, và sau đó chỉ cần giải nén ra giá trị tương ứng với một nhóm chụp:

(?$group_name [{ner:NUMBER}]+) /(k|m|g|t)b/ memory? 
+0

Dường như đây là một tính năng đặc biệt của Khai thác thực thể được đặt tên của IBM. Tất nhiên, Regex có thể có trong bất kỳ hệ thống nào, nhưng IBM NEE có thể chạy các mẫu có hiệu quả hơn nhiều; và cũng xử lý các khái niệm liên quan với nhau. (Ví dụ: mã bưu chính có hàng chục biểu mẫu trên toàn thế giới nhưng tất cả đều là "mã bưu chính" cho mục đích của các khái niệm cấp cao hơn.) –

+0

Điều này chắc chắn đúng: IBM có công cụ nhanh hơn cho loại kết hợp regex này. Tuy nhiên, các ví dụ trên là từ CoreNLP. TokensRegex (bao gồm trong CoreNLP) nói chung là đủ nhanh cho hầu hết các ứng dụng; đặc biệt nếu một trong hai (1) mẫu đơn giản (không có các kết quả có độ dài biến đổi), hoặc (2) thì có rất ít mẫu. –

+0

Nếu bạn đang tìm kiếm một giải pháp chủ yếu dựa trên regex, bạn cũng có thể xem [JAPE] của GATE (https://gate.ac.uk/releases/gate-5.0-build3244-ALL/doc/tao/splitch7. html) môi trường biểu thức chính quy. Tôi không chắc nó nhanh hơn chúng ta, nhưng nó có hỗ trợ GUI hơn. –

2

Bạn có thể tạo dữ liệu đào tạo của riêng mình và gắn nhãn các phép đo được yêu cầu cho phù hợp.

Ví dụ nếu bạn có một câu như Jack weighs about 50 kgs

Vì vậy, mô hình sẽ phân loại đầu vào của bạn như:

Jack, NGƯỜI
nặng, O
về, O
50, MES
kg, MES

Nơi MES là viết tắt của các phép đo.

Gần đây, tôi đã tạo dữ liệu đào tạo cho Stanford NER tagger cho sự cố tùy chỉnh của mình và đã tạo mô hình cho nó.

Tôi nghĩ rằng cho Stanford CoreNLP NER bạn cũng có thể làm điều tương tự

Đây có thể là một cách tiếp cận machine learning-based chứ không phải là một cách tiếp cận rule-based

+0

Cảm ơn bạn, Rohan. Cách tiếp cận dựa trên ML có thể có giá trị. Nhưng rõ ràng một số quy tắc sẽ cho chúng ta rất nhiều giá trị ở đây. Có quá nhiều regexes cho một giải pháp đặc biệt mà không cần CoreNLP đơn giản hoặc hiệu quả, nhưng tôi muốn nó nếu một công cụ trích xuất thực thể có thể cho phép tôi nhóm các regex này theo cách đơn giản và hiệu quả. –

+0

Dường như đây là một tính năng đặc biệt của Khai thác thực thể được đặt tên của IBM. Tất nhiên, Regex có thể có trong bất kỳ hệ thống nào, nhưng IBM NEE có thể chạy các mẫu có hiệu quả hơn nhiều; và cũng xử lý các khái niệm liên quan với nhau. (Ví dụ: mã bưu chính mất hàng chục biểu mẫu trên toàn thế giới nhưng tất cả đều là "mã bưu chính" cho mục đích của các khái niệm cấp cao hơn.) –

+0

Ya điều đó là có thể. Yêu cầu rất nhiều nghiên cứu cho vấn đề này. :) –