gpt4 book ai didi

php - 文本的索引词

转载 作者:可可西里 更新时间:2023-10-31 23:50:10 26 4
gpt4 key购买 nike

<分区>

我有这样的文字

*mmm* we have a dog
*ppp* we are going home
*SSS* we have gone home

在本文中,* 之间的文本是对页码和行码的书籍的引用。在这种情况下,我只是将其缩减为三个字母。

我想创建一个数组,每个单词作为键,行号作为值:

Array
(
[we] => Array
(
[0]=>*mmm*,
[1]=>*ppp*,
[2]=>*SSS*
)
[have] => Array
(
[0] => *mmm*,
[1] => *SSS*
)
)

等等....

其次,我想创建一个数组,其中两个单词作为键,行号作为值

Array
(
[we have] => array([0] => *mmm*, [1] => *SSS*),
[have a] => array([0 => *mmm*),
[a dog] => array([0] => *mmm*),
[dog we] => array([0] => *mmm*),
[we are] => array([0] => *ppp*)
)

请注意,当两个单词不在同一行时(如 [dog we]),应将第一个单词的引用用作值。

我想我找到了第一个问题的解决方案。我将文本转换为数组$text = array ([0]=>*mmm*, [1]=>"we", [2]=>"have", 等等...

然后:

foreach ($text as $word)
{
if($word[0] == "*")
{
$value = $word;
continue;
}
else
{
$key = $word;
if (array_key_exists($key,$dictionary))
{
array_push($dictionary[$key], $value);
}
else
{
$dictionary[$key] = array($value);
}
}
return $dictionary;

为了创建一个包含两个单词的数组,我做了以下操作

foreach ($text as $word)
{
if($word[0] == "*")
{
$value = $word;
continue;
}
else
{
$key1 = $word;
$key2 = $text[array_search($key1,$text)+1];
if ($key2[0] == "*")
{
continue;
}
else
{
$key = $key1.$key2;
if (array_key_exists($key,$dictionary))
{
array_push($dictionary[$key], $value);
}
else
{
$dictionary[$key] = array($value);
}
}
return $dictionary;
}

由于 $key = $key1.$key2;,这不起作用。似乎当键是 [we have](如我们在 mmm 中的文本)和稍后键应该是 [we are] 该程序没有任何区别。事实上,每次第一个词是“我们”时,他都会自动添加第二个词“有”,即使它应该是"is"。因此,这意味着在遍历文本的每个单词时,$key1 不会恢复为零,但每次第一个单词是“we”时,该值将放在“we have”键下。

有人对此有解决方案,或者整个事情可以更简单地完成吗?

PS 我希望我没有忘记很多 {} 我在一个小屏幕上输入这个,没有很好的概览

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com