Php 区分实词和随机字符串

Php 区分实词和随机字符串,php,Php,我想区分一个有效的英语单词和随机字符串 在下面的列表中 apple bc3cd7410a8ee1defc4461cd902f pears banana banannna 我需要过滤掉bc3cd7410a8ee1defc441cd902f 现在我的方法是使用pspell\u check和pspell\u suggest猜测它是否有效(或真正的拼写错误) 函数为notradomString($stringToCheck) { $dictionary=pspell_new('en'); 如果(!ps

我想区分一个有效的英语单词和随机字符串

在下面的列表中

apple
bc3cd7410a8ee1defc4461cd902f
pears
banana
banannna
我需要过滤掉
bc3cd7410a8ee1defc441cd902f

现在我的方法是使用
pspell\u check
pspell\u suggest
猜测它是否有效(或真正的拼写错误)

函数为notradomString($stringToCheck)
{
$dictionary=pspell_new('en');
如果(!pspell_check($dictionary,$stringToCheck)){
##检查用户是否打算提供实际单词并拼写错误
如果(!empty(pspell_suggest($dictionary,$stringToCheck))){
返回true;
}否则{
返回false;
}
}否则{
返回true;
}
}
对于给定的单词列表,该函数当前按预期工作。然而,我有一种感觉,必须有更好的方法来处理这种情况,特别是当我以一种非预期用途的方式依赖
pspell\u suggest

所以这里的问题是,在什么情况下,
pspell\u建议
可以为垃圾词提供建议,比如
yhsfolh
,或者其他我现在想不起来的情况


我在想,计算输入和来自
pspell\u suggest
的第一个建议之间的
[Levenshtein distance][1]
是否会对结果产生任何影响。

您提到要过滤掉垃圾,只保留“有效的英语单词”。要做到这一点,唯一确定的方法就是像你一样使用字典,是吗?当然,您可以立即删除任何带有数字的内容,但我不确定这是否真正取决于您的用例,我认为。总的来说,对于简单的日常场景,你的想法听起来非常棒。新函数还有一些选项,例如
PSPELL\u BAD\u拼写器
,可能有用,也可能没用。@Martin Re numbers:@deceze我甚至没有考虑过包含数字的单词。有趣的一点!