集合Set

+无序不重复元素(键)集
+和字典类似,但是无“值”

创建

x = set()
x = {key1,key2,...}

添加和删除

x.add('body')
x.remove('body')

集合的运算符

运算符 含义

  •        差集

& 交集

| 并集

!= 不等于

== 等于

in 成员

for key in set 枚举

+中文分词

如:我爱北京天安门。->我/爱/北京/天安门/。

算法:正向最大匹配

从左到右扫描取尽可能长的词

如:研究生命的起源->研究生/命/的/起源

“研究生”是词,且比“研究”更长

自然语言处理

处理此问题需要一个词典

正向最大匹配分词

def load_dict(filename):
word_dict = set()
max_len = 1
f = open(filename)
for line in f:
word = unicode(line .strip(),'utf-8')
word_dict.add(word)
if len(word) > max_len:
max_len = len(word) return max_len,word_dict def fmm_word_seg(sent,max_len,word_dict):
begin = 0
words = []
sent = unicode(sent,'utf-8') while begin < len(sent):
for end in range(begin + max_len,begin,-1):
if sent[begin:end] in word_dict:
words.append(sent[begin:end])
break
begin = end return words max_len,word_dict = load_dict('lexicon.dic')
sent = raw_input('Input a sententce:')
words = fmm_word_seg(sent,max_len,word_dict)
for word in words:
print word

数据结构对比

note 12 集合Set的更多相关文章

  1. Java学习日记-12 集合(2)

    一.List<E>接口(超级接口Collection,List比Collection多重载了一些索引作为形参的方法)1.实现类ArrayList\LinkedListArrayList顺序 ...

  2. 12集合(3)-----Map

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  3. 12集合(2)-----Set

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  4. 12集合(1)-----List

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  5. python note 12 生成器、推导式

    1.生成器函数 # 函数中如果有yield 这个函数就是生成器函数. 生成器函数() 获取的是生成器. 这个时候不执行函数# yield: 相当于return 可以返回数据. 但是yield不会彻底中 ...

  6. python note 07 集合

    1.删除特例 lis = [11,22,33,44,55] for i in range(len(lis)): print(i) del lis[i] print(lis) #每删除链表中一个值链表就 ...

  7. plsql programming 12 集合(忽略, 个人感觉用不到)

    关联数组, 嵌套表, varray 个人并不推荐使用集合, 因为操作有别于普通字段. 集合中每一个元素的数据类型都是相同的, 因此这些元素都是同质的(同质元素) 这一章的内容先忽略吧, 因为个人感觉用 ...

  8. C#面向对象12 集合

    ArrayList和HashTable集合 1.ArrayList集合 ***添加元素 using System; using System.Collections.Generic; using Sy ...

  9. Alpha Release Note 12/15/2015

    内容提要: ******Personal Photo Experience可供您存放所有的私人照片,系统会自动整理内容,您可以借助搜索功能快速找到所需图片,同时过滤重复图片和低质量图片,给您全新的搜索 ...

随机推荐

  1. ubuntu16.04 解决boot空间不足

    1. dpkg --get-selections |grep linux-image #查看已安装内核版本号 2. uname -a #查看现运行版本 3. sudo apt-get purge 版本 ...

  2. mysql 命令汇总

    1.连接master和slave CHANGE MASTER TO:将slave定向到master,然后用START SLAVE启动复制 change master to master_host='' ...

  3. Failed to load ApplicationContext ,Error creating bean with name 'adminUserService': Injection of autowired dependencies failed;

    Druid配置的时候出现这个问题: "C:\Program Files\Java\jdk1.8.0_191\bin\java" -ea -Didea.test.cyclic.buf ...

  4. 炸金花游戏(4)--炸金花AI基准测试评估

    前言: 本文将谈谈如何评估测试炸金花的AI, 其实这个也代表一类的问题, 德州扑克也是类似的解法. 本文将谈谈两种思路, 一种是基于基准AI对抗评估, 另一种是基于测试集(人工选定牌谱). 由于炸金花 ...

  5. 信号报告-python

    #Signal report.py a = eval(input()) #这里要整除 readability = a // 10 strength = a - readability * 10 # p ...

  6. 【EMV L2】终端验证结果(Terminal Verification Results,TVR)

    终端验证结果,Terminal Verification Results(TVR),Tag95,5bytes: 记录交易过程中,数据认证.处理限制.持卡人验证.终端风险管理.行为分析以及联机处理的结果 ...

  7. Python相关

    当Python源码编译以后,需要对一些依赖库重新安装,而且有些是要用pip去安装. python 文件.目录属性的操作os.path等os模块函数 https://blog.csdn.net/bytx ...

  8. PHP 多维数组排序 函数怎么保持数字键不被重新索引

    /** * 根据数组中的某个键值大小进行排序,仅支持二维数组 * * @param array $array 排序数组 * @param string $key 键值 * @param bool $a ...

  9. 运行Tomcat报错 解决方法

    The APR based Apache Tomcat Native library which allows optimal performance in production environmen ...

  10. 在ubuntu服务器上安装tomcat 9

    前提条件: 确保ubuntu服务器上 已经安装 java 8 或更高版本,安装java8可以参考我的另一篇博文 通过 ppa 在ubuntu server 上安装java 8 java -versio ...