我想用n-gram(最好在PHP中)实现一些应用程序.
哪种类型的n-gram更适合大多数用途?单词级别或字符级别n-gram?你如何在PHP中实现一个n-gram-tokenizer?
首先,我想知道什么是N-gram.它是否正确?这是我如何理解n克:
句子:“我住在纽约州”.
字数级别(n = 2):“#我”,“我住”,“住在”,“在纽约州”,“NY#”
字符级别二进制(2为n):“#I”,“I#”,“#l”,“li”,“iv”,“ve”,“e#”,“#i”,“in” n#“,”#N“,”NY“,”Y#“
当你有这个n-gram部分的数组时,你会丢弃重复的数组,并为每一个给出频率的部分增加一个计数器:
字级别:[1,1,1,1,1]
字符级别:[2,1,1,…]
它是否正确?
此外,我想更多地了解你可以用n-gram做什么:
>如何使用n-gram来识别文本的语言?
>即使没有双语语料库,可以使用n-gram进行机器翻译吗?
>如何构建垃圾邮件过滤器(垃圾邮件,火腿)?用贝叶斯滤波器组合n克?
>如何做主题发现?例如:是关于篮球还是狗的文字?我的方法(对维基百科的“狗”和“篮球”的文章进行以下操作):为两个文档构建n-gram向量,对它们进行归一化,计算曼哈顿/欧几里德距离,结果越接近1,越高相似
你对我的应用方法有什么看法,特别是最后一个?
我希望你能帮助我.提前致谢!