# NLTK中的nltk.metrics包用于提供各种评估或相似性度量
from __future__ import print_function
from nltk.metrics import *def main1():training = 'PERSON OTHER PERSON OTHER OTHER ORGANIZATION'.split()testing = 'PERSON OTHER OTHER OTHER OTHER OTHER'.split()print(training)print(testing)print("ACCURACY:")print(accuracy(training, testing))print("===" * 25)trainset = set(training)testset = set(testing)print(trainset)print(testset)print("PRECISION:")print(precision(trainset, testset))print("RECALL:")print(recall(trainset, testset))print("F_MEASURE:")print(f_measure(trainset, testset))main1()
# 执行结果
['PERSON', 'OTHER', 'PERSON', 'OTHER', 'OTHER', 'ORGANIZATION']
['PERSON', 'OTHER', 'OTHER', 'OTHER', 'OTHER', 'OTHER']
ACCURACY:
0.6666666666666666
===========================================================================
{'ORGANIZATION', 'PERSON', 'OTHER'}
{'PERSON', 'OTHER'}
PRECISION:
1.0
RECALL:
0.6666666666666666
F_MEASURE:
0.8

1.5.1 使用编辑距离算法执行相似性度量

import nltk
from nltk.metrics import *def main2():# 3步print(edit_distance("relate", "relation"))# 7步print(edit_distance("suggestion", "calculation"))main2()
# 执行结果
3
7

1.5.2 使用Jaccard系数执行相似性度量

# 两个集合 X 和 Y 交集的相似程度
import nltk
from nltk.metrics import *def main3():X1 = {20, 30}Y2 = {20, 30}print("完全相同:")print(jaccard_distance(X1, Y2))X1 = {20, 30}Y2 = {10, 40}print("完全不同")print(jaccard_distance(X1, Y2))X1 = {20, 30}Y2 = {20, 40}print("部分相同")print(jaccard_distance(X1, Y2))main3()
# 执行结果
完全相同:
0.0
完全不同
1.0
部分相同
0.6666666666666666

1.5.3 使用Smith Waterman 距离算法执行相似度计算

# 类似于编辑距离算法
# 在nltk.metrics包中没有找到相关模块

1.5.4 其他字符串相似性度量

# 二进制距离
# 两个标签相同,返回值为0.0, 否则,它的返回值为1.0
import nltk
from nltk.metrics import *def main4():X = {30, 50}Y = {30, 50}print("相同")print(binary_distance(X, Y))X = {10, 20, 30, 40}Y = {30, 50, 70}print("不同")print(binary_distance(X, Y))main4()
# 执行结果
相同
0.0
不同
1.0
# 多个标签,Masi距离基于部分协议
# 有详细算法
import nltk
from nltk.metrics import *def main5():X = {30, 40}Y = {30, 40, 50, 60}print(masi_distance(X, Y))main5()
# 执行结果
0.335

01_字符串处理-----05_相似性度量相关推荐

  1. 01_字符串处理------01_切分

    1.1.1 将文本切分为语句 def main1():from nltk.tokenize import sent_tokenizeimport nltktext = " Welcome r ...

  2. 01_字符串处理-----04_在文本中应用ZIpf定律

    # Zipf定律指出,文本中标识符出现的频率与其在排序列表中的排名或位置成反比. # 所以,频率最高的单词出现的频率大约是出现频率第二位的单词的2倍,而出现频率第二位的单词则是出现频率第四位的单词的2 ...

  3. 01_字符串处理-----03_替换和校正标识符

    1.3.1 使用正则表达式替换单词 # 创建replacers.py文件,被调用 import rereplacement_patterns = [ (r'won\'t', 'will not'), ...

  4. 01_字符串处理-----02_标准化

    1.2.1 消除标点符号 def main1():text = [" It is a pleasant evening.", "Guests, who came from ...

  5. Theory: String basics(理论:字符串基础)

    什么是字符串? 弦是这些词之一,它们会根据上下文改变其含义:它可以指代竖琴的迷人声音或描述宇宙的结构.在计算机编程中,字符串只是一个有序的符号序列.我们从索引0开始,即给定字符串 s,它的第一个元素是 ...

  6. Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)

    总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 link 什么是可重入锁? link 谈谈LockSupport link 谈谈AQS link ...

  7. 2555555555555555555

    Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis) 巨輪 2021-03-28 02:16:11  12834  收藏 315 分类专栏: 面试题 文章标签 ...

  8. Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3

    Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3 总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 ...

  9. 文本相似性度量---------字符串近似相等

    给定两个字符串如何判断它们的相似程度?常用的有两种方法: 编辑距离(edit distance) 最长公共子序列(LCS,longest common sequence) 解释两个概念: 编辑距离,指 ...

最新文章

  1. PPTPD服务端搭建
  2. 2019年宁夏文化科技卫生“三下乡”集中示范活动启动
  3. 【NLP】一行Python代码中自动化文本处理
  4. Python3.x:pip命令安装第三方库,超时处理方案
  5. 日志长度_Kafka 日志存储详解
  6. 程序员面试金典 - 面试题 01.08. 零矩阵
  7. 字典超详细--python
  8. 大神云集!2019年谷歌博士奖学金获得者重磅问世,清华、上交大、港中文入选最多!...
  9. 服务器系统安装及部署pdf,服务器操作系统安装说明.pdf
  10. 【报告分享】人工智能之未来产业智能----新价值、新边界、新格局.pdf(附下载链接)...
  11. linux popen阻塞_linux popen()与system()的区别
  12. Java游戏编程技术-1
  13. 澳洲计算机科学专业,盘点澳洲八大名校那些最强的专业—计算机科学专业
  14. 各运营商虚拟主机对比_满足您需求的最佳虚拟主机提供商
  15. android 自定义viewpager指示器,Android自定义View Flyme6的Viewpager指示器
  16. 使用window小娜实现文本转语音
  17. html5光线传感器,基于一种可以测量光线强度的传感器电路设计
  18. flash +asp.net +fcs实现视频聊天
  19. 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】
  20. C++Win10终结者病毒

热门文章

  1. 超越AlphaZero,DeepMind新算法MuZero登顶Nature | AI日报
  2. 怕蛇的人如何学Python?
  3. 《Linux命令详解手册》——Linux畅销书作家又一力作
  4. 数据分析及机器学习环境配置(docker极简入门指南)
  5. 十分流行的自举法(Bootstrapping )为什么有效
  6. 独家 | 使用Python的LDA主题建模(附链接)
  7. 二次元少女生成器、会开车的神经网络...2019年最好的17个机器学习项目!
  8. 在2020年到来之前,你应该知道的10大科技趋势预测
  9. 常见医疗扫描图像处理步骤
  10. 只要做出角色3D模型,AI就能让它动起来!再也不怕3D动画拖更了丨SIGGRAPH 2020