Python NLP自然语言处理之基于Jiaba分词识别时间

Publish: May 16, 2019 Category: 数据分析 No Comments

概念理解

词性标注:
给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程。这样说比较抽象,我们用一个简单的例子来说明

这儿是个非常漂亮的公园

对其词性标注结果如下

这儿/代词 是/动词 个/量词 非常/副词 漂亮/形容词 的/结构助词 公园/名词

给已经分好的词做词性标注,中文里多义的,也就是不同场景下表示的语法属性完全不同。好在大多数的词,尤其是“实词”一般只有一到两个词性,并且其中一个词性使用频次远远高于另外一个。
词性标注最简单的方法是从”语料库“中统计每个词所对应的高频词性,将其作为默认词性。同时使用”隐含马尔可夫模型“、”条件随机场模型”能提高标记准确性。



阅读剩余部分...

Python NLP自然语言处理之使用jieba进行中文分词实践

Publish: April 28, 2019 Category: 代码分享,数据分析 No Comments

自然语言处理的首要任务是分词,将一段文本分割成独立的词语。

中文分词介绍

已经归纳的三种分词如下:
规则分词、统计分词、混合分词

  • 规则分词:
    通过设立人工词库,按照一定方式进行切分匹配。

正向最大匹配法(Maximum Match Method MM法)的基本思路,假定分词词典中最最长词为 i 个汉字字符,则首先切分待处理文档的前 i 个字符作为匹配子串,在分词词典中查找。如果找到则表示匹配成功,匹配子串作为一个词切分出来。如果在字典中找不到这个词,则匹配失败,然后将匹配字段中的最后一个字去掉对剩下的子串重新匹配。按照这个方法直到匹配成功。
逆向最大匹配算法(Reverse Maximum Match Method, RMM法):其算法描述和MM法基本一致,唯一的不同在于RMM法是从文本的后面开始匹配。
双向最大匹配法 (Bi-directction method):是将MM法和RMM法得到的结果进行比较,然后按照最大匹配原则,选取词数切分最少的作为结果。

  • 统计分词
    把每个词看做由单个字组成的,如果相连的两个字在不同的文本中出现词数越多,那么这两个词大概率是一个词,当出现的概率高于设定的阈值时我们认为这个”字组“可能会构成一个词。

基于统计的分词一般有两部分内容:

  • 建立统计语言模型
  • 对句子进行单词划分,对划分结果进行概率统计,获得概率最大分词方式。

Jieba中文分词工具

Jieba分词结合了基于规则和基于统计这两类方法实现中文分词。通过前缀词典构建可能的有向无环图,通过在该图中的多条分词路径找到最优路线,也就确定了具体分词。对于未记录在词典的词,其使用HMM模型,采用Viterbi算法进行推导(表示我也不知道这个是什么意思)。






阅读剩余部分...

集体智慧编程之用户相似度

Publish: September 10, 2018 Category: 数据分析 No Comments

寻找相近的用户

我们有如下数据,列出了每个人对每部电影的喜好评分,数字越大表示越喜欢。要做推荐算法首先要做的是寻找相似爱好的用户,然后根据这些相似用户中最喜欢的一些电影推荐给该用户。

数据说明

首先第一步就是寻找相近用户,这里有两种相似用户寻找方式。

项目Lisa RoseGene SeymourMichael PhillipsClaudia PuigMick LaSalleJack MatthewsToby
Lady in the Water2.53.02.5 3.03.0
Snakes on a Plane3.53.53.03.54.04.04.5
Just My Luck3.01.5 3.02.0
Superman Returns3.55.03.54.05.05.04.0
You, Me and Dupree2.53.5 2.53.53.51.0
The Night Listener3.03.04.04.53.03.0

阅读剩余部分...

基于Scrapy的高校学术活动爬虫介绍

Publish: September 6, 2018 Category: 数据分析 No Comments

先把地址贴一下 https://gitee.com/kuaizhaoren/swallow, 给自己挖了个坑可能填不上了。现在的感觉是只有需求驱动才有动力搞下去。有共同学习兴趣的可以看下。

阅读剩余部分...