主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

wordEmbedding

단어를벡터로매핑하는단어임베딩모델

설명

단어임베딩은단어집의단어를실수형벡터로매핑합니다(word2vec、手套및fastText라이브러리를통해대중화됨)。

벡터는유사한단어들이유사한벡터를갖도록단어의의미체계를캡처합니다。또한어떤임베딩은”왕과왕비의관계는남자와여자의관계와같다“처럼단어사이의관계도캡처합니다。벡터형식에서이관계는왕——남자+여자=여왕입니다。

생성

fastTextWordEmbedding을사용하여사전훈련된임베딩을불러오거나,readWordEmbedding을사용하여파일로부터임베딩을읽어오거나,trainWordEmbedding을사용하여임베딩을훈련해서단어임베딩을만듭니다。

속성

모두확장

단어임베딩의차원으로,양의정수로지정됩니다。

예:300

모델내고유한단어로,字符串형벡터로지정됩니다。

데이터형:字符串

객체함수

vec2word 임베딩벡터를단어에매핑
word2vec 단어를임베딩벡터에매핑하기
isVocabularyWord 단어가단어임베딩또는인코딩에포함되었는지테스트
writeWordEmbedding 단어임베딩파일쓰기

예제

모두축소

文本分析工具箱™模型用于快速文本英语160亿令牌词嵌入지원패키지를다운로드하여설치합니다。

명령줄에fastTextWordEmbedding을입력합니다。

fastTextWordEmbedding

文本分析工具箱模型用于快速文本英语160亿令牌词嵌入지원패키지가설치되어있지않으면이함수가애드온탐색기로연결되는지원패키지링크를제공합니다。지원패키지를설치하려면링크를클릭한다음,설치를클릭하십시오。명령줄에emb = fastTextWordEmbedding을입력하여성공적으로설치되었는지확인합니다。

emb = fastTextWordEmbedding
emb = wordem寝具属性:Dimension: 300 Vocabulary: [1×1000000 string]

필요한지원패키지가설치되었으면함수가wordEmbedding객체를반환합니다。

사전훈련된단어임베딩을fastTextWordEmbedding을사용하여불러옵니다。이함수를사용하려면文本分析工具箱™模型用于快速文本英语160亿令牌词嵌入지원패키지가필요합니다。이지원패키지가설치되어있지않으면함수에서다운로드링크를제공합니다。

emb = fastTextWordEmbedding
emb = wordem寝具属性:Dimension: 300 Vocabulary: [1×1000000 string]

word2vec을사용하여단어“意大利”、“罗马”및“巴黎”를벡터에매핑합니다。

意大利= word2vec (emb,“意大利”);罗马= word2vec (emb,“罗马”);巴黎= word2vec (emb,“巴黎”);

vec2word를사용하여벡터意大利-罗马+巴黎를단어에매핑합니다。

Word = vec2word(emb,意大利-罗马+巴黎)
词=“法国”

사전훈련된단어임베딩을사용하여토큰화된문서로구성된배열을단어벡터시퀀스로변환합니다。

fastTextWordEmbedding함수를사용하여사전훈련된단어임베딩을불러옵니다。이함수를사용하려면文本分析工具箱™模型用于快速文本英语160亿令牌词嵌入지원패키지가필요합니다。이지원패키지가설치되어있지않으면함수에서다운로드링크를제공합니다。

emb = fastTextWordEmbedding;

공장보고서데이터를불러와서tokenizedDocument배열을만듭니다。

文件名=“factoryReports.csv”;data = readtable(文件名,“TextType”“字符串”);textData = data.Description;文件= tokenizedDocument (textData);

doc2sequence를사용하여문서를단어벡터시퀀스로변환합니다。기본적으로doc2sequence함수는시퀀스의왼쪽을채워서동일한길이로만듭니다。고차원단어임베딩을사용하여대규모문서모음을변환하는경우채우기를수행하려면대량의메모리가필요합니다。함수가데이터를채우지않도록하려면“PaddingDirection”옵션을“没有”으로설정하십시오。또는“长度”옵션을사용하여채우는양을제어할수있습니다。

序列= doc2sequence (emb、文档“PaddingDirection”“没有”);

처음10개시퀀스의크기를표시합니다。각시퀀스는Dx年代행렬입니다。여기서D는임베딩차원이고年代는시퀀스의단어벡터수입니다。

序列(1:10)
ans =10×1单元阵列{300×10单}{300×11单}{300×11单}{300×6单}{300×5单}{300×10单}{300×8单}{300×9单}{300×7单}{300×13单}

예제단어임베딩을읽어옵니다。维基百科의이모델은텍스트를분석하여도출되었습니다。

文件名=“exampleWordEmbedding.vec”;emb = readWordEmbedding(文件名)
emb = wordem寝具属性:维度:50词汇表:[1x9999 string]

word2vecvec2word를사용하여단어임베딩을탐색합니다。

国王= word2vec (emb,“王”);人= word2vec (emb,“男人”);女人= word2vec (emb,“女人”);单词= vec2word(emb,king - man + woman)
词= "女王"

단어임베딩을훈련시키고텍스트파일에씁니다。

예제데이터를불러옵니다。파일sonnetsPreprocessed.txt에는셰익스피어소네트의전처리된버전이들어있습니다。파일에는한줄에하나씩소네트가들어있으며단어가공백으로구분되어있습니다。sonnetsPreprocessed.txt에서텍스트를추출하고,추출한텍스트를새줄문자에서문서로분할한후그문서를토큰화합니다。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

trainWordEmbedding을사용하여단어임베딩을훈련시킵니다。

emb = trainWordEmbedding(文档)
培训:100%损失:0剩余时间:0小时0分钟。
emb = wordem寝具属性:维度:100词汇表:[1x401 string]

단어임베딩을텍스트파일에씁니다。

文件名=“exampleSonnetsEmbedding.vec”;writeWordEmbedding (emb文件名)

readWordEmbedding을사용하여단어임베딩파일을읽어옵니다。

emb = readWordEmbedding(文件名)
emb = wordem寝具属性:维度:100词汇表:[1x401 string]
R2017b에개발됨