Php 如何获取文本中的词频

Php 如何获取文本中的词频,php,Php,我知道如何使用explode和一些数组函数在文本中获得一个单词的频率,但我真正想要的是获得两个或更多单词的频率。例如,此文本: “这是一个示例文本。它是一个用于教育目的的示例文本。” 我需要代码来执行此操作: 是一(2) 示例文本(2) 样本(2) .... 等等 提前感谢。一些让您开始的伪代码: frequencies = empty array words = explode sentence on white spaces for each word in words : saniti

我知道如何使用explode和一些数组函数在文本中获得一个单词的频率,但我真正想要的是获得两个或更多单词的频率。例如,此文本:
“这是一个示例文本。它是一个用于教育目的的示例文本。”

我需要代码来执行此操作:
是一(2)
示例文本(2)
样本(2)
.... 等等


提前感谢。

一些让您开始的伪代码:

frequencies = empty array
words = explode sentence on white spaces
for each word in words :
  sanitized word = trim word and convert to lower case
  frequency[ sanitized word ] ++
endforeach

frequency
数组现在包含单词在句子中出现的次数

以下代码将获得两个连续单词:

输出:

Array
(
    [This is] => 2
    [a sample] => 4
    [text It] => 2
    [is a] => 4
    [sample text] => 4
    [made for] => 2
    [educational purposes] => 2
    [It is] => 2
    [text made] => 2
    [for educational] => 2
    [purposes This] => 1
)
一个改进是将字符串转换为小写?

我让其余的人告诉你:-)

付出一些努力:你尝试了什么?@MarvinLabs如果可以的话我会的这就是我寻求帮助的原因如果你能添加一些东西那就好了。请看。任何人都可以尝试一些东西,即使你不能完全解决它。这不是我的意思,这只是一个单词的频率,我正在寻找的是2个单词的频率!你就是那个人,非常感谢!顺便问一下,你有没有办法扩展这段代码,这样它也可以得到3个或更多的单词?另外,我不理解奇偶运算背后的概念,如果你能给我解释一下逻辑,那就太好了。@dxer哦,是的,你可以把它改成3个单词,但你必须重写正则表达式,也许还要再加一行(也许几行)。“奇数”和“偶数”的概念最好用一个例子来说明:假设我有
abab
。我们有
ab
x2和
ba
x1。我们的正则表达式检查
字空间单词
,问题是当正则表达式匹配
ab
时,它会进一步移动,因此
ba
不会匹配。当它进一步移动时,第二部分将匹配
ab
。因此我想删除第一个单词,然后再次匹配。因此我们有了
bab
,正则表达式将匹配
baa
,并进一步移动。。。这个是“奇怪”的。只是一个名字,我想出了笑。希望它是明确的:-)非常感谢,现在非常清楚
Array
(
    [This is] => 2
    [a sample] => 4
    [text It] => 2
    [is a] => 4
    [sample text] => 4
    [made for] => 2
    [educational purposes] => 2
    [It is] => 2
    [text made] => 2
    [for educational] => 2
    [purposes This] => 1
)