主要内容

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

bagOfWords

词汇袋모델

설명

bag-of-words모델(단어빈도카운터라고도함)은단어가문서모음의각문서에서나타나는횟수를기록합니다。

bagOfWords는텍스트를단어로분할하지않습니다。토큰화된문서로구성된배열을만들려면tokenizedDocument항목을참조하십시오。

생성

설명

= bagOfWords는빈字袋모델을만듭니다。

예제

= bagOfWords (文档文档에나타나는단어개수를계산하고字袋모델을반환합니다。

예제

= bagOfWords (uniqueWords计数uniqueWords의 단어와计数의해당빈도수를사용하여字袋모델을만듭니다。

입력marketing수

모두 확장

입력문서로,tokenizedDocument배열,단어로구성형된字符串배열또는문자형벡터로구성된셀형배열로지정됩니다。文档tokenizedDocument배열이아닌경우이는단일문서를나타내고각소가단어행벡터여야합니다。문서를여러개지정하려면tokenizedDocument배열을사용하십시오。

고유한단어목록으로,字符串형벡터또는문자형벡터로구성된셀형배열로지정됩니다。uniqueWords< >失踪이있는경우함수는누락값을무시합니다。uniqueWords의크기는1xV여야하며,여기서V는计数의열개수입니다。

예:["an" "example" "list"]

데이터형:字符串|细胞

uniqueWords에해당하는단어의빈도수로,음이아닌정수로구성된행렬로지정됩니다。값计数(i, j)는i번째문서에서단어uniqueWords (j)가나오는횟수에해당합니다。

计数에는元素个数(uniqueWords)개의열이있어야합니다。

속성

모두 확장

문서당단어개수로,희소행렬로지정됩니다。

문서가나오는횟수로,음이아닌정수로지정됩니다。

모델내고유한단어개수로,음이아닌정수로지정됩니다。

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

데이터형:字符串

객체 함수

编码 문서를단어개수또는n-gram개수로구성된행렬로코딩
tfidf Tf-idf(단어빈도-역문서빈도)행렬
topkwords 词袋模型或LDA主题中最重要的词
addDocument 字袋모델또는字袋모델에문서추가
removeDocument 字袋모델또는字袋모델에서문서제거
removeEmptyDocuments 토큰화된문서배열,bag-of-words모델또는bag-of-n-grams모델에서빈문서제거
removeWords 문서또는字袋모델에서선택한단어제거
removeInfrequentWords 词汇袋모델에서개수가적은단어제거
加入 组合多个单词袋或n-grams袋模型
wordcloud 从文本、单词袋模型、n-grams袋模型或LDA模型创建词云图

예제

모두 축소

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

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

bagOfWords를사용하여字袋모델을만듭니다。

bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154

상위10개의단어와총개수를시합니다。

TBL = topkwords(包,10)
台=10×2表字数统计_______ _____“你的”281“你”234“爱”162“你”161“做”88“我的”63“将”59“眼睛”56“甜蜜”55“时间”53

고유한단어로구성형된字符串배열과단어개수로구성된행렬을사용하여bag-of-words모델을만듭니다。

uniqueWords = [“一个”“一个”“另一个”“例子”“最终”“句子”“第三”];计数= [...1 2 0 1 0 10 0;0 0 3 1 0 4 0;1 0 0 5 0 3 1;1 0 0 1 7 0 0];袋子= bagOfWords(uniqueWords,计数)
计数:[4x7 double]词汇:["a" "an" "another" "example"…NumWords: 7 NumDocuments: 4

텍스트데이터가한폴더내여러파일에포함되어있는경우파일데이터저장소를사용하여텍스트데이터를MATLAB으로가져올수있습니다。

예제소네트텍스트파일을위한파일데이터저장소를만듭니다。예제소네트의파일이름은”exampleSonnetN.txt입니다。여기서N은소네트번호입니다。extractFileText를읽기함수로지정합니다。

readFcn = @extractFileText;fds = fileDatastore(“exampleSonnet * . txt”“ReadFcn”readFcn)
fds = FileDatastore属性:Files:{'…/tp74971183/textanalytics-ex73762432/exampleSonnet1.txt';“…/ tp74971183 / textanalytics-ex73762432 / exampleSonnet2.txt”;/tp74971183/textanalytics-ex73762432/exampleSonnet3.txt…{'/tmp/Bdoc22a_1916654_32327/tp74971183/ textanalysis -ex73762432'} UniformRead: 0 ReadMode: 'file' BlockSize: Inf PreviewFcn: @extractFileText SupportedOutputFormats:万博1manbetx ["txt" "csv" "xlsx" "xls"…] ReadFcn: @extractFileText AlternateFileSystemRoots: {}

빈字袋모델을만듭니다。

bag = bagOfWords
bag = bagOfWords with properties: Counts: [] Vocabulary: [1x0 string] NumWords: 0 NumDocuments: 0

루프를사용해데이터저장소에있는파일을순회하여각파일을읽어옵니다。각파일의텍스트를토큰화하고문서를에추가합니다。

Hasdata (fds) STR = read(fds);文档= tokenizedDocument(str);bag = addDocument(包,文档);结束

업데이트된bag-of-words모델을@시합니다。

词汇:["来自" "最公平的" "生物" "我们"…NumWords: 276 NumDocuments: 4

removeWords에불용어목록을입력하여字袋모델에서불용어를제거합니다。불용어는“”、“”、“”과같이일반적으로분석전에텍스트에서제거되는단어입니다。

documents = tokenizedDocument([一个短句的例子。“第二个短句”]);bag = bagOfWords(文档);newBag = removeWords(包,stopWords)
newBag = bagOfWords with properties:计数:[2x4 double]词汇:["example" "short" "sentence" "second"] NumWords: 4 NumDocuments: 2

词汇袋모델에서빈도가가장높은단어의테이블을만듭니다。

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

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

bagOfWords를사용하여字袋모델을만듭니다。

bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154

상위5개단어를찾습니다。

T = topkwords(包);

모델에서상위20개단어를찾습니다。

K = 20;T = topkwords(包,k)
T =20×2表字数统计________ _____“你的”281“你”234“爱”162“你”161“做”88“我的”63“应”59“眼睛”56“甜蜜”55“时间”53“美”52“也”52“艺术”51“但“51”o“50”心“50”50“

字袋모델에서TF-IDF(단어빈도-역문서빈도)행렬을만듭니다。

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

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

bagOfWords를사용하여字袋모델을만듭니다。

bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154

Tf-idf행렬을만듭니다。처음10개의행과열을시합니다。

M = tfidf(包);完整的(M (1:10, 1:10))
ans =10×103.6507 4.3438 2.7344 3.6507 4.3438 2.2644 3.2452 3.8918 2.4720 2.5520 4.5287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5520 2.2644 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.7344 2.2644 2.5520 0 0 0 0 0 0 0 0 0 0 0 0

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

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

bagOfWords를사용하여字袋모델을만듭니다。

bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154

워드클라우드를사용하여字袋모델을시각화합니다。

图wordcloud(袋);

图中包含一个wordcloud类型的对象。

텍스트데이터가한폴더내여러파일에포함되어있는경우parfor를사용하여병렬로텍스트데이터를가져오고bag-of-words모델을만들수있습니다。并行计算工具箱™가설치된경우에는parfor루프가병렬로실행됩니다。그렇지않으면직렬로실행됩니다。词汇袋모델로구성된배열을하나의모델로결합하려면加入을사용하십시오。

파일모음에서字袋모델을만듭니다。예제소네트의파일이름은”exampleSonnetN.txt입니다。여기서N은소네트번호입니다。dir을사용하여파일목록및위치를가져옵니다。

fileLocation = fullfile(matlabroot,“例子”“textanalytics”“数据”“exampleSonnet * . txt”);fileInfo = dir(fileLocation);

빈bag-of-words모델을초기화한다음,루프를사용해파일을순회하여bag-of-words모델로구성된배열을만듭니다。

bag = bagOfWords;numFiles = numel(fileInfo);parfori = 1:numFiles f = fileInfo(i);Filename = fullfile(f.folder,f.name);textData = extractFileText(文件名);文档= tokenizedDocument(textData);bag(i) = bagOfWords(文件);结束
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数量:4)。

加入을사용하여字袋모델을결합합니다。

包=加入(包)
词汇:["来自" "最公平的" "生物" "我们"…NumWords: 276 NumDocuments: 4

  • 작업에홀드아웃테스트세트를사용하려면bagOfWords를사용하기전에텍스트데이터를분할하십시오。그렇게하지않으면字袋모델에서분석이편향될수있습니다。

버전 내역

R2017b에개발됨