如何计算单词共生

Sri*_*i M 5 string matlab

我有一串长度为50的字符,表示abbcda....从集合中取出的字母序列A={a,b,c,d}.

我想计算在n = 2的b情况下接下来的次数b(n-gram).

类似地,特定字符连续多次重复三次n = 3,例如在输入字符串abbbcbbb等中,所以这里以b3个字母的顺序出现的次数是2.

Moh*_*nia 6

要查找可以使用的非重叠2克数

numel(regexp(str, 'b{2}'))
Run Code Online (Sandbox Code Playgroud)

和3克

numel(regexp(str, 'b{3}'))
Run Code Online (Sandbox Code Playgroud)

计算重叠的2克使用正向前瞻

numel(regexp(str, '(b)(?=b{1})'))
Run Code Online (Sandbox Code Playgroud)

和重叠 - n图表

numel(regexp(str, ['(b)(?=b{' num2str(n-1) '})']))
Run Code Online (Sandbox Code Playgroud)

编辑 为了找到任意序列的出现次数,请使用第一个括号中的第一个元素和等号后的其余元素,以查找ba使用

numel(regexp(str, '(b)(?=a)'))
Run Code Online (Sandbox Code Playgroud)

找到bda用处

numel(regexp(str, '(b)(?=da)'))
Run Code Online (Sandbox Code Playgroud)