pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_suggest建议单词的拼写

描述

pspell_suggest(PSpell\Dictionary $dictionary, string $word): array|false

pspell_suggest() 返回给定单词的可能拼写数组。

参数

dictionary

一个 PSpell\Dictionary 实例。

word

要测试的单词。

返回值

返回可能拼写的数组。

变更日志

版本 描述
8.1.0 现在 dictionary 参数需要一个 PSpell\Dictionary 实例;之前需要一个 资源

示例

示例 #1 pspell_suggest() 示例

<?php
$pspell
= pspell_new("en");

if (!
pspell_check($pspell, "testt")) {
$suggestions = pspell_suggest($pspell, "testt");

foreach (
$suggestions as $suggestion) {
echo
"可能的拼写: $suggestion<br />";
}
}
?>

添加笔记

用户贡献笔记 1 条笔记

webmaster at hostpure dot com
20 年前
似乎如果您尝试做类似于 Google 的“您要找的是不是”建议,并且选择 pspell_suggest() 函数提供的第一个单词,那么它将无法与自定义词典和替换一起良好地工作。例如,以下代码

<?php
$pspell_config
= pspell_config_create("en");
pspell_config_personal($pspell_config, "/home/user/public_html/custom.pws");
pspell_config_repl($pspell_config, "/home/user/public_html/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

$words = preg_split ("/\s+/", $query);
$ii = count($words);

global
$spellchecked;
$spellchecked = "";

for(
$i=0;$i<$ii;$i++){

if (
pspell_check($pspell_link, $words[$i]))
{
$spellchecked .= $words[$i]." ";
}
else
{
$erroneous = "yes";
$suggestions = pspell_suggest($pspell_link, $words[$i]);
$spellchecked .= $suggestions[0]." ";
}
}
if(
$erroneous == "yes")
{
echo
"您要找的是不是: <i>".$spellchecked."?";
}
else
{
echo
$spellchecked . " 是一个有效的单词/短语";
}
?>

这在大多数情况下都能正常工作,并在大多数输入中对插入拼写错误时给出您要找的是什么建议。但是,如果您指定自定义替换,然后搜索您指定的拼写错误的单词,那么如果它不是返回的第一个建议,它将不会在“您要找的是不是”最终结果中使用。您需要做的是使用 fopen 和 fread 打开自定义词典,然后对于每个建议的单词,检查它们是否在词典中。如果建议的单词在自定义词典中,那么在“您要找的是不是”部分中使用它,否则丢弃它并尝试下一个。希望这对遇到此问题的人有所帮助,他们试图获得更准确的建议。
To Top