Làm cách nào để chú thích tài liệu văn bản với siêu dữ liệu?


18

Có rất nhiều tài liệu văn bản (bằng ngôn ngữ tự nhiên, không có cấu trúc), những cách có thể để chú thích chúng với một số dữ liệu meta ngữ nghĩa là gì? Ví dụ, hãy xem xét một tài liệu ngắn:

I saw the company's manager last day.

Để có thể trích xuất thông tin từ nó, nó phải được chú thích với dữ liệu bổ sung để ít mơ hồ hơn. Quá trình tìm kiếm dữ liệu meta như vậy không phải là vấn đề, vì vậy giả sử nó được thực hiện thủ công. Câu hỏi đặt ra là làm thế nào để lưu trữ những dữ liệu này theo cách phân tích sâu hơn về nó có thể được thực hiện thuận tiện / hiệu quả hơn?

Một cách tiếp cận có thể là sử dụng các thẻ XML (xem bên dưới), nhưng có vẻ quá dài dòng và có thể có các cách tiếp cận / hướng dẫn tốt hơn để lưu trữ dữ liệu meta như vậy trên các tài liệu văn bản.

<Person name="John">I</Person> saw the <Organization name="ACME">company</Organization>'s
manager <Time value="2014-5-29">last day</Time>.

Một trong những mục đích chính của SGML (tương tự đối với con cháu của nó, XML) là cung cấp phương tiện để gắn thẻ tài liệu văn bản (thẻ POS thẻ ngữ nghĩa).
Deer Hunter

Có thể cụ thể hơn / hạn chế hơn về loại siêu dữ liệu bạn muốn thêm? Với hai ví dụ của bạn, tôi nghi ngờ rằng có một cách ít dài dòng hơn có cùng tính biểu cảm chung như các thẻ XML.
ojdo

@ojdo Hầu hết các dữ liệu meta là để định hướng (như thời gian tương đối) hoặc để chỉ định các thực thể đặc biệt (ví dụ FK).
Amir Ali Akbari

2
Tôi đã sử dụng brat.nlplab.org trong quá khứ. Có một giao diện đẹp cho nhiều loại chú thích khác nhau. Các chú thích được lưu trữ trong một tệp .annot riêng biệt, đó là danh sách các từ được chú thích và vị trí của chúng trong tài liệu.
dùng1893354

@ user1893354 Rất hữu ích! Đặc biệt là " định dạng nổi bật " được sử dụng bởi nó có vẻ rất phù hợp với nhu cầu của tôi. Tôi đề nghị đăng một câu trả lời nếu bạn thích.
Amir Ali Akbari

Câu trả lời:


15

Cá nhân tôi sẽ ủng hộ việc sử dụng thứ gì đó không đặc trưng cho trường NLP và một cái gì đó đủ chung chung để nó vẫn có thể được sử dụng như một công cụ ngay cả khi bạn bắt đầu vượt qua mức siêu dữ liệu này. Tôi đặc biệt chọn một định dạng có thể được sử dụng bất kể môi trường phát triển và định dạng có thể giữ một số cấu trúc cơ bản nếu điều đó có liên quan (như mã thông báo)

Nó có vẻ lạ, nhưng tôi thành thật đề nghị JSON. Nó được hỗ trợ rất tốt, hỗ trợ rất nhiều cấu trúc và đủ linh hoạt để bạn không phải di chuyển khỏi nó vì không đủ mạnh. Ví dụ của bạn, một cái gì đó như thế này:

{'text': 'I saw the company's manager last day.", {'Person': [{'name': 'John'}, {'indices': [0:1]}, etc...]}

Một lợi thế lớn mà bạn có trên bất kỳ định dạng dành riêng cho NLP nào ở đây là JSONcó thể được phân tích cú pháp trong bất kỳ môi trường nào và vì dù sao bạn cũng có thể phải chỉnh sửa định dạng của mình, JSON cho vay các chỉnh sửa rất đơn giản giúp bạn có một khoảng cách ngắn sang các định dạng khác.

Bạn cũng có thể lưu trữ thông tin mã thông báo nếu bạn muốn:

{"text": ["I", "saw", "the", "company's", "manager", "last", "day."]}

EDIT: Để làm rõ việc ánh xạ siêu dữ liệu khá mở, nhưng đây là một ví dụ:

{'body': '<some_text>',
 'metadata': 
  {'<entity>':
    {'<attribute>': '<value>',
     'location': [<start_index>, <end_index>]
    }
  }
}

Hy vọng rằng sẽ giúp, cho tôi biết nếu bạn có thêm câu hỏi.


Là một nhà phát triển web, JSON có vẻ hoàn toàn hợp lý với tôi, nhưng, bạn có thể giải thích về định dạng chính xác của ánh xạ từ cho các thực thể không?
Amir Ali Akbari

@AmirAliAkbari Cập nhật câu trả lời để bao gồm thêm chi tiết.
indico

7

Nói chung, bạn không muốn sử dụng thẻ XML để gắn thẻ tài liệu theo cách này vì các thẻ có thể trùng nhau.

Các khung UIMA , GATE và NLP tương tự biểu thị các thẻ tách biệt với văn bản. Mỗi thẻ, chẳng hạn như Person, ACME, Johnvv được lưu trữ như các vị trí đó tag bắt đầu và vị trí mà nó kết thúc. Vì vậy, đối với thẻ ACME, nó sẽ được lưu trữ khi bắt đầu vị trí 11 và kết thúc ở vị trí 17.


7

Công cụ chú thích brat có thể hữu ích cho bạn theo nhận xét của tôi. Tôi đã thử nhiều trong số chúng và đây là thứ tốt nhất tôi tìm thấy. Nó có một giao diện người dùng đẹp và có thể hỗ trợ một số loại chú thích khác nhau. Các chú thích được lưu trữ trong một tệp .annot riêng có chứa từng chú thích cũng như vị trí của nó trong tài liệu gốc. Mặc dù vậy, một lời cảnh báo, nếu cuối cùng bạn muốn đưa các chú thích vào một bộ phân loại như công cụ NER Stanford thì bạn sẽ phải thực hiện một số thao tác để đưa dữ liệu sang định dạng mà nó sẽ chấp nhận.


1

Để mô tả tất cả dữ liệu tồn tại, đây là một nhiệm vụ rất khó khăn, nhưng chúng ta có thể sử dụng mô hình dữ liệu: http://schema.org/ , trong đó các loại cấu trúc của thông tin. Việc thực hiện trước đó được nhắm mục tiêu để thực hiện công nghệ MarkUp, vì vậy, nó dường như có thể hữu ích cho nhiệm vụ của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.