Doc2Vec-단락에 레이블을 지정하는 방법 (gensim)


17

실제 관점에서 gensim에서 doc2vec로 문장 / 단락 / 문서에 레이블을 지정하는 방법에 대해 궁금합니다.

고유 한 레이블 (예 : "Sent_123")이있는 각 문장 / 문단 / 문서가 있어야합니까? "Sent_123"이라는 단일 특정 문장과 가장 유사한 단어 나 문장을 말하려는 경우 유용합니다.

내용에 따라 레이블을 반복 할 수 있습니까? 예를 들어, 각 문장 / 문장 / 문서가 특정 제품 항목에 관한 것이라면 (그리고 주어진 제품 항목에 대해 여러 문장 / 문단 / 문서가있는 경우) 항목을 기반으로 문장에 레이블을 붙인 다음 단어 나 단어 사이의 유사성을 계산할 수 있습니다 문장과이 레이블 (제품 항목과 관련된 모든 문장의 평균과 같을 것 같습니까?)

답변:


10

둘 다 가능합니다. 모든 문서에 고유 한 ID (예 : 순차 일련 번호)를 문서 태그 또는 문서에 대해 다른 것을 나타내는 공유 문자열 문서 태그 또는 둘 다로 부여 할 수 있습니다.

TaggedDocument 생성자는 태그 목록을 가져옵니다. (0에서 오름차순으로 일반 정수로 제한하면 Doc2Vec 모델은 백업 배열에 직접 색인으로 사용하고 그렇지 않으면 문자열-> 색인 조회에 할당되는 많은 메모리를 절약합니다 큰 데이터 세트에 중요 할 수 있지만 문자열 doctag 또는 int와 문자열 doctag를 혼합하여 사용할 수 있습니다.)

요구 사항에 가장 적합한 것을 실험해야합니다.

일부 분류 작업의 경우 때로는 예상보다 나은 방법으로 텍스트 당 ID를 완전히 건너 뛰고 원하는 클래스 예제를 사용하여 알려진 클래스 예제로 Doc2Vec 모델을 교육하는 것입니다. 그런 다음 모든 문서가 아닌 클래스 독 태그에 대해서만 '문서 벡터'를 얻을 수 있으며 잠재적으로 훨씬 작은 모델입니다. 나중에 새 텍스트에 대한 벡터를 유추하면 관련 클래스 문서 벡터에 의미가 가까운 벡터가 생성됩니다.


대단히 감사합니다! 나는 genim을 가지고 놀기 시작하면서 옆으로-독특하거나 공유 된 태그가 사용되는지에 관계없이 문서와 경험 사이에서 수행 할 수있는 단어 사이의 유사성을 계산할 수 있는지 궁금합니다.
B_Miner

1
일부 학습 모드는 '같은 공간'내에 단어 및 문서 벡터를 생성하므로 유사성이 의미가있을 수 있습니다. 예를 들어 arxiv.org/abs/1507.07998 이 문서를 참조하십시오.이 문서는 doc-vectors (Wikipedia article) 및 word-vectors와 관련된 일종의 '분석 산술'도 수행합니다. 이 논문의 훈련은 동시 건너 뛰기 단어 훈련을 제공하는 gensim의 DBOW 모드와 같습니다 dm=0, dbow_words=1.
gojomo

감사합니다 @gojomo! gensim 목록에이 작업을 수행하는 방법에 대한 쿼리를 추가했습니다. groups.google.com/forum/#!topic/gensim/RLRfY6k3ulw
B_Miner

내가 틀렸다면 정정 해주세요. 마지막 단락에서이 사이트의 질문에 태그를 추가하는 것처럼 각 문서에 태그를 지정해야합니다. 그리고 훈련 후에는 각 태그의 벡터 표현을 얻습니다. 새 문서가 도착하면 새 문서의 태그를 제안하기 위해 유사성 메트릭을 사용할 수 있습니다.
사용자

@user-그렇습니다. 필요하지는 않지만 가능할 수도 있고 때로는 도움이 될 수도 있습니다.
gojomo 2016 년

9

doc2vec모델은에서 알고리즘을 가져옵니다 word2vec.

에서 word2vec모든 단어는 어휘에서 자신의 의미 론적 의미를 가지고 있기 때문에, 단어를 라벨 할 필요가 없습니다. 그러나의 경우 doc2vec, 의미 론적 의미를 전달하는 단어 또는 문장의 수는 알고리즘이 단일 엔티티로 식별 할 수 있도록 지정해야합니다. 이러한 이유로, 우리는 전달 된 의미 적 의미의 수준에 따라 문장 또는 단락을 지정 labels하거나 tags문장 또는 문장으로 전달합니다.

단락에서 여러 문장에 단일 레이블을 지정하면 단락의 모든 문장이 의미를 전달해야합니다. 반면에 단락의 모든 문장에 변수 레이블을 지정하면 각각 의미 론적 의미를 나타내며 그 의미가 유사하거나 유사하지 않을 수 있습니다.

간단히 말해서 label의미는 무언가 의 의미 적 의미를 의미합니다.


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.나는 이것을 올바르게 이해하고 있는지 확실하지 않습니다. 알고리즘 POV에서 의미 정의에 동일한 태그가있는 모든 문장이 필요합니까, 아니면 동일한 태그가있는 모든 문장이 동일한 것을 설명합니까? 첫 번째 경우에는 한 문장만으로는 충분하지 않으며 두 번째 경우에는 한 문장만으로는 충분합니다.
사용자

@user : 알고리즘 POV에서 두 번째 경우입니다. 태그는 한 문장으로 사용될 때 모든 단어의 의미를 포착하는 엔티티로 정의됩니다. 여러 문장에서 사용될 때와 같은 방식으로 다른 모든 문장의 단어도 캡처합니다.
yazhi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.