NLTK 将标记化句子转换为同义词集格式

2024-01-11

我希望使用 NLTK 获得单个单词和句子中每个单词之间的相似性。

NLTK可以得到两个特定单词之间的相似度,如下所示。此方法要求给出对该单词的具体引用,在本例中为“dog.n.01”,其中狗是名词,我们希望使用第一个 (01) NLTK 定义。

dog = wordnet.synset('dog.n.01')
cat = wordnet.synset('cat.n.01')
print  dog.path_similarity(cat)
>> 0.2

问题是我需要从句子中的每个单词中获取词性信息。 NLTK 包能够获取句子中每个单词的词性,如下所示。但是,这些语音部分(“NN”、“VB”、“PRP”...)与同义词集作为参数的格式不匹配。

text = word_tokenize("They refuse to permit us to obtain the refuse permit")
pos_tag(text)
>> [('They', 'PRP'), ('refuse', 'VBP'), ('to', 'TO'), ('permit', 'VB'), ('us', 'PRP'), ('to', 'TO'), ('obtain', 'VB'), ('the', 'DT'), ('refuse', 'NN'), ('permit', 'NN')]

是否可以从 NLTK 中的 pos_tag() 结果获取 synset 格式的数据?通过同义词集格式化我的意思是这样的格式dog.n.01


您可以使用一个简单的转换函数:

from nltk.corpus import wordnet as wn

def penn_to_wn(tag):
    if tag.startswith('J'):
        return wn.ADJ
    elif tag.startswith('N'):
        return wn.NOUN
    elif tag.startswith('R'):
        return wn.ADV
    elif tag.startswith('V'):
        return wn.VERB
    return None

标记句子后,您可以使用此函数将句子中的单词与 SYNSET 联系起来。这是一个例子:

from nltk.stem import WordNetLemmatizer
from nltk import pos_tag, word_tokenize

sentence = "I am going to buy some gifts"
tagged = pos_tag(word_tokenize(sentence))

synsets = []
lemmatzr = WordNetLemmatizer()

for token in tagged:
    wn_tag = penn_to_wn(token[1])
    if not wn_tag:
        continue

    lemma = lemmatzr.lemmatize(token[0], pos=wn_tag)
    synsets.append(wn.synsets(lemma, pos=wn_tag)[0])

print synsets

Result: [Synset('be.v.01'), Synset('travel.v.01'), Synset('buy.v.01'), Synset('gift.n.01')]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NLTK 将标记化句子转换为同义词集格式 的相关文章

  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Python在postgresql表中查找带有单引号符号的字符串

    我需要从 psql 表中查找包含多个单引号的字符串 我当前的解决方案是将单引号替换为双单引号 如下所示 sql query f SELECT exists SELECT 1 FROM table name WHERE my column m
  • 更新 Sqlalchemy 中的多个列

    我有一个在 Flask 上运行的应用程序 并使用 sqlalchemy 与数据库交互 我想用用户指定的值更新表的列 我正在使用的查询是 def update table value1 value2 value3 query update T
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 当单词以“|”分隔时如何读取文件(埃因霍温)?

    在Python中 我有一个文件 其中的单词由 例如 city state zipcode 我的文件阅读器无法区分单词 另外 我希望我的文件阅读器从第 2 行而不是第 1 行开始 如何让我的文件阅读器分隔单词 import os import
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • Python Pandas 根据另一列的总计从另一个数据帧中选择值

    我下面有一个 DataFrame 但我需要根据取消和订单列从每个代码中选择行 假设代码 xxx 的阶数为 6 1 5 1 阶数为 11 我需要一种算法 可以选择满足总共 11 行的行 阶数为 6 5 如果没有行匹配 则选择最接近的 id 并
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • 解析根元素内元素之间的 XML 文本

    我正在尝试用 Python 解析 XML 以下是 XML 结构的示例 a aaaa1 b bbbb b aaaa2 a
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • 如何获取 Google 文档上次编辑日期

    我正在开发一个应用程序 我需要在其中显示谷歌文档上次编辑的日期 快照在这里 https drive google com file d 0B S M4QRpDlyN1VsSXR6Q2t3OUE view usp sharing 我能够通过获
  • Onsen UI 页面导航参数不起作用

    我正在使用 Onsen UI 和 AngularJS 并尝试在 Onsen navigation 上传递一个值 但它不起作用 有什么问题吗 第1页 html
  • PDO 相当于 mysql_client_encoding()?

    PDO 有没有办法检查客户端编码 就像 mysql mysqli 中那样mysql client encoding 在 PHP net 上 它指出可以使用以下命令设置字符集PDO setAttribute e g db gt setAttr
  • BigQuery 获取唯一行

    我有这些行 我想知道如何仅获取按 id unit number 序列号和驱动程序分组的唯一行 但同时获取该行的日期 SELECT id date FROM table GROUP BY id date ORDER BY id date DE
  • 面向消息的协议与面向流的协议之间的区别[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我试图理解之间的区别message oriented and stream oriented协议 我四处搜寻 没有发现两者之间的明确解释或
  • 在控制器内使用警报脚本后返回视图

    这是出于对在 C 代码中管理 JavaScript 的兴趣而提出的问题 而不是讨论这是否是一个好的设计 我开始尝试使用控制器内创建警报这个答案 https stackoverflow com questions 38168512 retur
  • 最大周期子串的正则表达式

    这是后续用于检测周期性字符串的正则表达式 https stackoverflow com questions 38322973 a regex to detect periodic strings noredirect 1 comment6
  • elm 0.19.1 中的当前年份为 4 位数字

    如何使用 ELM 0 19 1 执行一个函数来获取 4 位数字的当前年份 我读过一些内容 但 0 19 1 没有任何效果 签名 getCurrentYear Int 执行 getCurrentYear gt 2020 Edit 也许正在执行
  • 类型错误:__init__() 得到意外的关键字参数“方法”

    好吧 我正在编写一个 Flask 项目 但是当我尝试python manage py 回溯告诉我 Traceback most recent call last File manage py line 5 in
  • 使用 gradle (Android Studio) 和本地 Maven 存储库时无法构建应用程序

    我正在尝试包括图书馆Slik https github com afollestad Silk and Cards UI https github com afollestad Cards UI在我的应用程序中 我使用 android st
  • 将嵌套对象列表非规范化/展平为点分隔的键值对

    如果我的嵌套对象是字典 那就更简单了 但这些是字典列表 例子 all objs1 a 1 b ba 2 bb 3 ba 21 bb 31 c 4 a 11 b ba 22 bb 33 bc h 1 e 2 c 44 我期望以下格式的输出 a
  • 我可以在 UITableviewCell 中使用 viewDidLoad 方法吗?

    我可以用吗viewDidLoad中的方法UITableviewCell 不 你不会在自定义单元类子类 UITableViewCell 中编写 viewDidLoad 它是 UIViewController 的一部分 你有一个名为的方法 vo
  • Chrome 在 z 索引方面是否正在退化(或者我做错了什么)?

    我正在制作的网站的导航作为 3 个选项卡 单击后将显示 3 个相应的内容 我刚刚意识到它不起作用铬22 虽然我 90 确定一年前网站上线时我在 Chrome 上测试过它 但在IE9 and FF16 这是我的问题的摘要 http jsfid
  • 设置android操作栏的背景颜色

    我正在使用兼容性库 v7 进行操作 我只是想将操作栏的颜色 适用于 Android 2 1 及更高版本 尽管我运行 Android 4 4 2 设置为纯色 但颜色不会改变 它保持不变 我也尝试过用颜色创建一个实体可绘制对象 但这也没有改变
  • 使用 libtool 从共享库加载重复的函数名

    我正在尝试创建一个 调试 共享库 即 so 或 dll 文件 该库调用另一个具有与调试库相同的 C API 的 真实 共享库 在本例中 是为了模拟 PKCS 11 API 但是 我遇到了麻烦 调试库的链接映射与真实库的链接映射发生冲突 导致
  • 如何让玩家在路径中移动到另一侧?

    我希望当触摸开始时 玩家 红色圆圈 移动到圆形路径的另一侧 我已经让玩家遵循一条路径 但我还没有在互联网上找到我的问题的答案 override func didMoveToView view SKView player SKSpriteNo
  • 在 Windows 上安装 R Studio 服务器

    是否可以在 Windows 计算机上安装 RStudio Server 我知道如果我使用AMI就可以 但是如果没有AMI我怎么安装它呢 我读过http www r bloggers com rstudio server part 2 pro
  • COM+ 库应用程序的目的是什么?

    创建 COM 应用程序时 向导会提供在库应用程序和服务器应用程序之间进行选择的选项 服务器应用程序在单独的进程中激活 这可用于以廉价的方式将 64 位使用者与 32 位进程内 COM 组件进行互操作 在调用者进程中激活的库应用程序有什么用
  • 聚合的意外输出

    在尝试时aggregate另一个问题here https stackoverflow com questions 14434632 find frequency of each unique column in a matrix or da
  • NLTK 将标记化句子转换为同义词集格式

    我希望使用 NLTK 获得单个单词和句子中每个单词之间的相似性 NLTK可以得到两个特定单词之间的相似度 如下所示 此方法要求给出对该单词的具体引用 在本例中为 dog n 01 其中狗是名词 我们希望使用第一个 01 NLTK 定义 do