Nlp 快速同义词';Matlab中的计算
好的,我现在有Matlab中的代码,它在不到一秒钟的时间内计算同义词Nlp 快速同义词';Matlab中的计算,nlp,matlab,matlab-deployment,matlab-compiler,Nlp,Matlab,Matlab Deployment,Matlab Compiler,好的,我现在有Matlab中的代码,它在不到一秒钟的时间内计算同义词 clc clear all close all warning off text = 'good'; Doc = actxserver('Word.Application'); X = invoke(Doc,'SynonymInfo',text); Synonyms = get(X,'MeaningList'); 但现在的问题是,它只计算一个单词。如何在阵列中使用它?就像我有一大堆单词一样?请引导 非常感谢您可以在单元格数
clc
clear all
close all
warning off
text = 'good';
Doc = actxserver('Word.Application');
X = invoke(Doc,'SynonymInfo',text);
Synonyms = get(X,'MeaningList');
但现在的问题是,它只计算一个单词。如何在阵列中使用它?就像我有一大堆单词一样?请引导
非常感谢您可以在单元格数组中使用和组织单词:
words = {'good', 'bad', 'apple'};
Doc = actxserver('Word.Application');
X = cellfun(@(word) invoke(Doc,'SynonymInfo',word), words, 'UniformOutput', false);
Synonyms = cellfun(@(X) get(X,'MeaningList'), X, 'UniformOutput', false);
现在您可以访问同义词{3},例如检索“apple”的同义词。谢谢@Rafael,它正在工作,但是如果我使用循环,比如:for I=1:length(words)Doc=actxserver('Word.Application');X=cellfun(@(word)调用(Doc,'SynonymInfo',word),word(i),'UniformOutput',false);同义词=cellfun(@(X)get(X,'MeaningList'),X,'UniformOutput',false);结束它只找到第三个的同义词。。因为单词是三个,但我想在这个循环中找到所有三个单词的同义词,请指导!不,你误解了。您只需调用我建议的代码一次,而不是在循环中。然后您可以这样做来检索所有同义词:
fori=1:length(words),disp(同义词{i});结束
或在Matlab上键入同义词{:}查看所有结果。是的,完成了!非常感谢:)当然。只需在代码下方添加这一行:同义词=cellfun(@(X)X(1:min(2,numel(X))),同义词'UniformOutput',false)
。min(2,…)
参数规定了允许的最大字数。您可以将其更改为您想要的任何值。Sute,只需添加此行,您的同义词单元格数组将包含单词作为第一个条目:Synonyms=cellfun(@(X)[words{X};Synonyms{X}]、num2单元格(1:numel(words))、'UniformOutput',false)