sql – 我可以使用哪种算法来查找常见的相邻单词/模式识别?

栏目: 数据库 · 发布时间: 5年前

内容简介:翻译自:https://stackoverflow.com/questions/8069531/which-algorithm-i-can-use-to-find-common-adjacent-words-pattern-recognition

我的数据库中有一个大表,文本顺序中有很多来自各种文本的单词.我想找到一些单词一起出现的次数/频率.

示例:假设我在许多文本中都有这4个单词:United |国家|的美国.我会得到结果:

美国:50

美国:45

美利坚合众国:40

(这只是一个包含4个单词的示例,但可以使用少于4个单词).

有一些算法可以做到这一点或类似于此?

编辑:欢迎使用一些显示如何操作的R或 SQL 代码.我需要一个我需要做的实际例子.

表结构

我有两个表:具有id和文本的令牌.文本是独一无二的,此表中的每个入口代表一个不同的单词.

TextBlockHasToken是保持文本顺序的表.每行代表文本中的一个单词.

它有textblockid,它是令牌所属文本的块.作为令牌的句子的句子,作为句子内的令牌位置的位置,以及作为令牌表引用的tokenid.

它被称为N-gram;在你的情况下一个4克.它确实可以作为马尔可夫链的副产品获得,但您也可以使用滑动窗口(大小4)来遍历(线性)文本,同时更新4维“直方图”.

更新2011-11-22:

在给定当前状态的情况下,马尔可夫链是一种模拟切换到新状态的概率的方法.这是“状态机”的随机等价物.在自然语言的情况下,“状态”由“前N个单词”组成,这意味着您将先验概率(在前N个单词之前)视为equal_to_one.计算机人员很可能会在NLP案例中使用树来实现马尔可夫链. “状态”只是从根到当前节点的路径,而words_to_follow的概率是当前节点的后代的概率.但是每次我们选择一个新的子节点时,我们实际上都会向下移动树,并“忘记”根节点,窗口只有N个字宽,这将转换为深入树中的N个级别.

你可以很容易地看到,如果你像这样走马尔科夫链/树,在第一个单词之前的概率是1,第一个单词之后的概率是P(w1),在第二个单词= P(w2)之后||因此,在处理语料库时,您构建马尔可夫树(:=更新节点中的频率),在骑行结束时,您可以通过频率(单词)/ SUM估计给定单词选择的概率(FREQ(兄弟姐妹)).对于在树中5深的单词,这是单词的概率,给定前4个单词.如果你想要N-gram概率,你需要从根到最后一个单词的路径中所有概率的乘积.

翻译自:https://stackoverflow.com/questions/8069531/which-algorithm-i-can-use-to-find-common-adjacent-words-pattern-recognition


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Refactoring

Refactoring

Martin Fowler、Kent Beck、John Brant、William Opdyke、Don Roberts / Addison-Wesley Professional / 1999-7-8 / USD 64.99

Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its int......一起来看看 《Refactoring》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具