将一个句子分成单独的单词

Pet*_*rim 13 php cjk multibyte text-segmentation

我需要将一个中文句子分成单独的单词.中文的问题是没有空格.例如,句子可能看起来像:( ?????用空格表示:)?? ?? ?.

目前我可以想到一个解决方案.我有一个带有中文单词的字典(在数据库中).该脚本将:

  1. 尝试在数据库(??)中找到句子的前两个字符,

  2. 如果??实际上是一个单词并且它在数据库中,则脚本将尝试查找前三个字符(???).???不是一个字,所以它不在数据库中=>我的应用程序现在知道这??是一个单独的单词.

  3. 尝试与其他角色一起做.

我真的不喜欢这种方法,因为即使是一个小文本,它也会查询数据库太多次.

还有其他解决方案吗?

Pet*_*rim 6

感谢大家的帮助!

经过一番研究后,我找到了一些工具(考虑到你的所有建议),这就是我回答自己问题的原因.

  1. PHP类(http://www.phpclasses.org/browse/package/2431.html)

  2. 一个Drupal模块,基本上是另一个PHP解决方案,有4种不同的分割算法(很容易理解它是如何工作的)(http://drupal.org/project/csplitter)

  3. 中文分词的PHP扩展(http://code.google.com/p/phpcws/)

  4. 如果您尝试在baidu.com上搜索"中文分词",还可以使用其他一些解决方案

此致

恶趣


You*_*nes 0

好吧,如果您有一个包含所有单词的数据库,并且没有其他方法来获取这些单词,我认为您被迫重新查询数据库。