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


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

查看所有标签

猜你喜欢:

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

Head First Mobile Web

Head First Mobile Web

Lyza Danger Gardner、Jason Grigsby / O'Reilly Media / 2011-12 / $ 50.84

Despite the huge number of mobile devices and apps in use today, your business still needs a website. You just need it to be mobile. Head First Mobile Web walks you through the process of making a con......一起来看看 《Head First Mobile Web》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

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

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换