Doc2Vec - Cách gắn nhãn các đoạn văn (gensim)


17

Tôi đang tự hỏi làm thế nào để gắn nhãn (thẻ) câu / đoạn văn / tài liệu với doc2vec trong gensim - từ quan điểm thực tế.

Bạn có cần phải có mỗi câu / đoạn / tài liệu với nhãn duy nhất của riêng mình (ví dụ: "Sent_123") không? Điều này có vẻ hữu ích nếu bạn muốn nói "những từ hoặc câu nào giống với một câu cụ thể duy nhất có nhãn" Sent_123 ".

Bạn có thể có các nhãn được lặp lại dựa trên nội dung? Ví dụ: nếu mỗi câu / đoạn / tài liệu nói về một mục sản phẩm nhất định (và có nhiều câu / đoạn / tài liệu cho một mục sản phẩm nhất định), bạn có thể gắn nhãn các câu dựa trên mục đó và sau đó tính toán độ tương tự giữa một từ hoặc một câu và nhãn này (mà tôi đoán sẽ giống như trung bình của tất cả các câu có liên quan đến mục sản phẩm)?

Câu trả lời:


10

Cả hai đều có thể. Bạn có thể cung cấp cho mỗi tài liệu một ID duy nhất (chẳng hạn như số sê-ri liên tiếp) dưới dạng doctag hoặc doctag chuỗi được chia sẻ đại diện cho một cái gì đó khác về nó hoặc cả hai cùng một lúc.

Hàm tạo TaggedDocument lấy danh sách các thẻ. (Nếu bạn tình cờ giới hạn bản thân ở mức đơn giản tăng dần từ 0, mô hình Doc2Vec sẽ sử dụng các chỉ mục đó làm chỉ mục trực tiếp vào mảng sao lưu của nó và bạn sẽ tiết kiệm được rất nhiều bộ nhớ dành cho chuỗi -> tra cứu chỉ mục , có thể quan trọng đối với các bộ dữ liệu lớn. Nhưng bạn có thể sử dụng doctags chuỗi hoặc thậm chí là hỗn hợp của doctags int và chuỗi.)

Bạn sẽ phải thử nghiệm những gì hoạt động tốt nhất cho nhu cầu của bạn.

Đối với một số tác vụ phân loại, một cách tiếp cận đôi khi hoạt động tốt hơn tôi mong đợi là bỏ hoàn toàn ID trên mỗi văn bản và chỉ đào tạo mô hình Doc2Vec với các ví dụ về lớp đã biết, với các lớp mong muốn là tài liệu. Sau đó, bạn nhận được "vectơ tài liệu" chỉ cho các tài liệu lớp - không phải mọi tài liệu - một mô hình nhỏ hơn nhiều. Sau đó suy ra các vectơ cho các văn bản mới dẫn đến các vectơ có ý nghĩa gần với các vectơ tài liệu lớp liên quan.


Thật tuyệt, cảm ơn rất nhiều! Ở một khía cạnh khác khi tôi bắt đầu chơi xung quanh với genim - tôi tò mò liệu có thể tính được sự giống nhau giữa một tài liệu (bất kể sử dụng thẻ duy nhất hoặc chia sẻ) và một từ - có thể được thực hiện theo kinh nghiệm của bạn không?
B_Miner

1
Một số chế độ đào tạo tạo ra các vectơ từ và tài liệu bên trong 'cùng một không gian' và do đó, sự tương đồng có thể có ý nghĩa. Xem ví dụ bài báo này - arxiv.org/abs/1507.07998 - thậm chí còn thực hiện một loại 'số học tương tự' liên quan đến vectơ doc (bài viết Wikipedia) và vectơ từ. Việc đào tạo trong bài báo đó giống như chế độ DBOW của gensim với đào tạo từ bỏ qua gram-gram đồng thời : dm=0, dbow_words=1.
gojomo

Cảm ơn @gojomo! Tôi đã thêm một truy vấn về cách thực hiện điều này trong danh sách gensim
B_Miner 13/2/2016

Xin hãy sửa tôi nếu tôi sai. Trong đoạn cuối cùng của bạn, bạn đang đề xuất rằng mỗi tài liệu nên được gắn thẻ giống như chúng tôi gắn thẻ câu hỏi trong trang web này. Và sau khi đào tạo, chúng tôi sẽ nhận được đại diện vector của mỗi thẻ. Khi một tài liệu mới đến, chúng ta chỉ có thể sử dụng số liệu tương tự để đề xuất các thẻ cho tài liệu mới.
người dùng

@user - vâng, có thể và đôi khi có ích để làm điều đó, mặc dù điều đó không cần thiết.
gojomo

9

doc2vecmô hình được thuật toán của nó từ word2vec.

Trong word2vecđó không cần phải dán nhãn các từ, bởi vì mỗi từ có ý nghĩa ngữ nghĩa riêng trong từ vựng. Nhưng trong trường hợp doc2vec, cần phải xác định rằng có bao nhiêu số từ hoặc câu truyền đạt một ý nghĩa ngữ nghĩa, để thuật toán có thể xác định nó là một thực thể duy nhất. Vì lý do này, chúng tôi đang chỉ định labelshoặc tagscâu hoặc đoạn tùy thuộc vào mức độ ý nghĩa ngữ nghĩa được truyền đạt.

Nếu chúng ta chỉ định một nhãn duy nhất cho nhiều câu trong một đoạn, điều đó có nghĩa là tất cả các câu trong đoạn được yêu cầu để truyền đạt ý nghĩa. Mặt khác, nếu chúng ta chỉ định nhãn biến cho tất cả các câu trong đoạn văn, điều đó có nghĩa là mỗi nhãn truyền tải một ý nghĩa ngữ nghĩa và chúng có thể có hoặc không có sự tương đồng giữa chúng.

Nói một cách đơn giản, một labelý nghĩa ngữ nghĩa của một cái gì đó.


If we specify a single label to multiple sentences in a paragraph, it means that all the sentences in the paragraph are required to convey the meaning.Tôi không chắc chắn tôi hiểu chính xác điều này. Từ các thuật toán POV, có phải tất cả các câu có cùng một thẻ cho định nghĩa ngữ nghĩa hoặc tất cả các câu có cùng một thẻ mô tả cùng một điều không? Trong trường hợp đầu tiên, không có câu đơn nào là tự cung cấp, trong trường hợp thứ hai, một câu duy nhất là tự túc.
người dùng

@user: Đây là trường hợp thứ hai, từ thuật toán POV, một thẻ được định nghĩa là một thực thể mà khi được sử dụng trong một câu duy nhất, nó nắm bắt nghĩa của tất cả các từ. Theo cùng một cách khi được sử dụng trong nhiều câu, nó cũng ghi lại các từ trong tất cả các câu khác.
yazhi
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.