sql – 我可以使用哪种算法来查找常见的相邻单词/模式识别?
我的数据库中有一个大表,文本顺序中有很多来自各种文本的单词.我想找到一些单词一起出现的次数/频率.
示例:假设我在许多文本中都有这4个单词:United |国家|的美国.我会得到结果: 美国:50 (这只是一个包含4个单词的示例,但可以使用少于4个单词). 有一些算法可以做到这一点或类似于此? 编辑:欢迎使用一些显示如何操作的R或SQL代码.我需要一个我需要做的实际例子. 表结构 我有两个表:具有id和文本的令牌.文本是独一无二的,此表中的每个入口代表一个不同的单词. TextBlockHasToken是保持文本顺序的表.每行代表文本中的一个单词. 它有textblockid,它是令牌所属文本的块.作为令牌的句子的句子,作为句子内的令牌位置的位置,以及作为令牌表引用的tokenid. 解决方法它被称为N-gram;在你的情况下一个4克.它确实可以作为马尔可夫链的副产品获得,但您也可以使用滑动窗口(大小4)来遍历(线性)文本,同时更新4维“直方图”.更新2011-11-22: 你可以很容易地看到,如果你像这样走马尔科夫链/树,在第一个单词之前的概率是1,第一个单词之后的概率是P(w1),在第二个单词= P(w2)之后||因此,在处理语料库时,您构建马尔可夫树(:=更新节点中的频率),在骑行结束时,您可以通过频率(单词)/ SUM估计给定单词选择的概率(FREQ(兄弟姐妹)).对于在树中5深的单词,这是单词的概率,给定前4个单词.如果你想要N-gram概率,你需要从根到最后一个单词的路径中所有概率的乘积. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |