分词模式
- 精确模式: 把文本精确且分开,不存在冗余单词,分词结果最准确。
- 全模式: 把文本中所有可能的词语都扫描出来,有冗余
- 搜索引擎模式: 在精确模式基础上,对长词再次切分
- 实际上,精确模式是全模式使用了隐马尔可夫模型后筛选的概率最大的结果。
语法
lcut(text[, cut_all=False]):精确模式分词,参数cut_all表示全模式;返回列表类型lcut_for_search(text):搜索引擎模式;返回列表类型add_word(word):向词库增加新词
text = '这里是中国北京市海淀区'
print(jieba.lcut(text))
print(jieba.lcut(text, cut_all=True))
print(jieba.lcut_for_search(text))

示例
统计词频,并从高到低输出词频字典
import jieba
def statistical(text, topK=10):
# 分词
words = jieba.lcut(text)
# 放在字典中
my_dict = dict()
for word in words:
if len(word) <= 1: # 只记录词,不记录单个字
continue
# 第一次为1; 否则+1
my_dict[word] = my_dict.get(word, 0) + 1
# 按词频(字典的v)由高到低排序
my_dict = list(my_dict.items())
my_dict.sort(key=lambda x: x[1], reverse=True)
my_dict = dict(my_dict)
# 输出前10个元组
for i, (k, v) in enumerate(my_dict.items()):
if i + 1 > topK:
break
print('{:<3} {:<4} {:>2}'.format(i, k, v))
if __name__ == '__main__':
text = '''现在很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值。
这样就算不法分 子得到数据库的用户密码的MD5值,也无法知道用户的密码。
比如在Unix系统中用户的密码就是MD5值(获取他类似的算法)经加密后存储在文件系统中。
当用户登陆的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中
的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在不知道用户
密码的明码的情况下就可以确定用户登陆系统的合法性。这不但可以避免用户的密码
被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。'''
statistical(text)

2733

被折叠的 条评论
为什么被折叠?



