Adding up words in matrices on Matlab
조회 수: 2 (최근 30일)
이전 댓글 표시
Example
hello
My name is Kevin
Hello my name is Susan
u1=[1]
u2[0,1,1,1,1]
u3=[1,1,1,1,0,1]
So u1 has a matrix with 1 as the word hello is in fact in the first sentence. Then u2 has[0,1,1,1,1] as 'hello' is not in the second sentence but 'my' 'name' 'is' and 'kevin' are.
And the same goes for u3, it contains the boolean value for 'hello' 'my' 'name' 'is' 'Kevin' 'Susan' respectively, with 'Kevin' being 0 as it's not in this final sentence.
As there are 7 different words in my example, the last matrix should have 7 indices.
.
How would I go in implementing such an algorithm on Matlab?
The sentences are in a file which I have to read onto Matlab. I'm able to read the sentences and put them in matrices,
while~feof(file) eachLine=fgetl(file) if isempty(eachLine)||strncmp(eachLine, '%',1)||~ischar(eachLine) ...
matrix=regexp(eachLine, ' ', 'split')
댓글 수: 0
답변 (2개)
Babak
2013년 4월 11일
b = {'Hello' 'my' 'name' 'is' 'kevin' 'Susan'};
a = strsplit('kevin, kevin my baby I am telling you Hello Hello my name is Susan not Susana');
% a is the string you would like to test if b's keywords exits in or not.
u = zeros(size(b));
for j = 1: length(b)
counter = 0;
for k = 1:length(a)
if isequal(b{j},a{k})
counter = counter +1;
end
end
u(j) = counter;
end
u
댓글 수: 4
Babak
2013년 4월 12일
this is how you can create the cell variable c that includes all the elements of both a and b
b={'hello' 'my' 'name' 'is' 'kevin'};
a={'and' 'my' 'name' 'is' 'susan'};
c = [a b]
Matt Kindig
2013년 4월 12일
편집: Matt Kindig
2013년 4월 12일
Another approach might be to use ismember(). For example:
dictionary = {'hello', 'my', 'name', 'is', 'kevin', 'susan'}; %words to match
Results = false(nLines, length(dictionary));
count = 1;
fid = fopen('your_file.txt');
while ~feof(fid)
Line = strtrim(fgetl(fid)); %get line
words = lower(regexp(Line, '\s+', 'split')); %split into (lowercase) words
Results(count,:) = ismember( dictionary, words); %determine if present
end
%for each line k, Results(k,m) will indicate if the word at dictionary{m} is present.
참고 항목
카테고리
Help Center 및 File Exchange에서 Feature Detection and Extraction에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!