python语言基本语句例句-关于python:使用WordNet查找同义词,定义和例句

我需要输入一个单词的输入文本文件。然后,我需要使用wordnet查找lemma_names,单词的同义词集的定义和示例。我读过这本书:"使用NLTK 2.0食谱进行Python文本处理"和"使用NLTK进行自然语言处理",以帮助我朝这个方向发展。尽管我已经知道可以使用终端来完成此操作,但是我无法使用文本编辑器来完成此操作。

例如,如果输入文本具有单词" flabbergasted",则输出需要采用以下方式:

吓坏的

(动词)吃惊的,吃惊的,吃惊的克服;"这使人感到困惑!"

(形容词)傻眼的,傻眼的,吃惊的,震惊的,雷击过的,傻眼的,傻傻的-仿佛惊奇而惊奇地傻了起来;"由于否认曾见过这起事故,一个警察圈感到震惊";"饱受摧残的al徒无语";"被他晋升的消息震惊了"

同义词集,定义和例句可直接从WordNet获得!

我有以下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33from __future__ import division

import nltk

from nltk.corpus import wordnet as wn

tokenizer = nltk.data.load("tokenizers/punkt/english.pickle")

fp = open("inpsyn.txt")

data = fp.read()

#to tokenize input text into sentences

print "

-----

".join(tokenizer.tokenize(data))# splits text into sentences

#to tokenize the tokenized sentences into words

tokens = nltk.wordpunct_tokenize(data)

text = nltk.Text(tokens)

words = [w.lower() for w in text]

print words #to print the tokens

for a in words:

print a

syns = wn.synsets(a)

print"synsets:", syns

for s in syns:

for l in s.lemmas:

print l.name

print s.definition

print s.examples

我得到以下输出:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19flabbergasted

["flabbergasted"]

flabbergasted

synsets: [Synset("flabbergast.v.01"), Synset("dumbfounded.s.01")]

flabbergast

boggle

bowl_over

overcome with amazement

["This boggles the mind!"]

dumbfounded

dumfounded

flabbergasted

stupefied

thunderstruck

dumbstruck

dumbstricken

as if struck dumb with astonishment and surprise

["a circle of policement stood dumbfounded by her denial of having seen the accident", "the flabbergasted aldermen were speechless", "was thunderstruck by the news of his promotion"]

有没有一种方法可以检索词性以及引理名称组?

如果您重新登录到SO,则应该接受Andreys的回答。 因为他不仅回答了问题,还回应了您的评论以帮助您。

1

2def synset(word):

wn.synsets(word)

不返回任何内容,因此默认情况下,您得到None

你应该写

1

2def synset(word):

return wn.synsets(word)

提取引理名称:

1

2

3

4

5

6

7

8

9

10from nltk.corpus import wordnet

syns = wordnet.synsets("car")

syns[0].lemmas[0].name

>>> "car"

[s.lemmas[0].name for s in syns]

>>> ["car", "car", "car", "car", "cable_car"]

[l.name for s in syns for l in s.lemmas]

>>>["car", "auto", "automobile", "machine", "motorcar", "car", "railcar", "railway_car", "railroad_car", "car", "gondola", "car", "elevator_car", "cable_car", "car"]

非常感谢!! :)真是个愚蠢的错误!

有没有一种方法可以仅从同义词集中提取单词并将其作为参数传递?例如,对于单词flabbergasted,您将获得Synset(flabbergast.v.01)和Synset(dumbfounded.s.01)。如何将它们作为参数传递给lemma_name函数?

从nltk.corpus导入wordnet syns = wordnet.synsets(car)[s.lemmas [0]。s在syns中的名称] >>> [汽车,汽车,汽车,汽车,电缆车]

我更新了答案

万分感谢!!我已经用输出更新了代码。有没有一种方法可以同时检索词类和词组名称呢?例如,字词是flabbergast,boggle和bowl over。有没有办法将其与输出结合在一起?

要获得词性,请使用[s.lemmas中l的l.synset.pos对于syns中s的使用]

打印[s.lemmas()中l的syns中s的s的l.name()]

我如何使用自己的火车数据?

在这里,我创建了一个易于使用(导入)的模块,并将一个字符串传递给它,它将返回该字符串的所有引理词。

模块:

1

2

3

4

5

6

7

8

9

10

11

12#!/usr/bin/python2.7

""" pass a string to this funciton ( eg "car") and it will give you a list of

words which is related to cat, called lemma of CAT. """

from nltk.corpus import wordnet as wn

import sys

#print all the synset element of an element

def lemmalist(str):

syn_set = []

for synset in wn.synsets(str):

for item in synset.lemma_names:

syn_set.append(item)

return syn_set

用法:

注意:模块名称为lemma.py,因此"来自lemma import lemmalist"

1

2

3>>> from lemma import lemmalist

>>> lemmalist("car")

["car", "auto", "automobile", "machine", "motorcar", "car", "railcar", "railway_car", "railroad_car", "car", "gondola", "car", "elevator_car", "cable_car", "car"]

干杯!

出现错误no ImportError: No module named lemma

1

2

3

4

5synonyms = []

for syn in wordnet.synsets("car"):

for l in syn.lemmas():

synonyms.append(l.name())

print synonyms

请修改您的答案以包含更多信息。不建议使用仅代码和"尝试此"答案,因为它们不包含可搜索的内容,并且不解释为什么有人应该"尝试此"。

在NLTK 3.0中,lemma_names已从属性更改为方法。 因此,如果出现错误提示:

1TypeError: "method" object is not iterable

您可以使用以下方法修复它:

1

2>>> from nltk.corpus import wordnet as wn

>>> [item for sysnet in wn.synsets("car") for item in sysnet.lemma_names()]

这将输出:

1

2

3

4

5>>> [

"car", "auto", "automobile", "machine", "motorcar", "car",

"railcar", "railway_car", "railroad_car", "car", "gondola",

"car", "elevator_car", "cable_car", "car"

]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 中的时间戳功能,Linux中时间戳取证研究

【 摘 要 】 文章分析了Linux操作系统中文件时间戳的更新情况。通过对相关工具的研究,阐述了如何获取、分析时间戳,为取证工作提供了依据。【 关键词 】 计算机取证;Linux操作系统;时间戳;Ext2/3/4 【 中图分类号 】 T…

client mac addr不能开机进不去系统_用asp.net core结合fastdfs打造分布式文件存储系统

今天主要是对开发过程,以及对FastDFS这个通用的分布式文件存储服务的单机及集群安装部署过程做个总结。希望对想要自建分布式文件系统的朋友有所帮助。什么是FastDFS这里先简单介绍下分布式文件存储系统。FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要…

linux在根目录下查找文件名称,如何使用Find命令在Linux中查找文件

Linux find命令是Linux系统中最重要和最方便的命令之一。 顾名思义,它可以根据您设置的任何条件和变量在Linux PC上找到文件。 您可以使用find命令按权限,用户,组,文件类型,日期,大小和其他可能的标准查找文…

小米游戏手柄pc插件_在电视上玩电脑游戏

有两个XBOX无线手柄,但steam游戏玩不过来,一直没有买主机。周末想和老婆一起合作玩玩《战斗方块剧场》,这样电脑椅就不够用了,还是窝在沙发里用电视玩着舒服。简单的方法是将显卡的输出接口转接到电视输入口即可。但这样有两个问题…

linux进程创建时间,linux进程创建时间计算

欢迎访问小站,阅读此文http://www.yandong.org/archives/501简介墙上时间,也就是距离1970年1月1日的时间,在linux kernel内部没多大用处,对其的应用多在用户空间。本文的目的在于在kernel里面计算得到 进程创建的墙上时间计算公式…

火焰传感器感应有火亮灯代码_智能无线感应灯火了,光感人感2种传感器感应,做照明品牌的几光...

智能无线感应灯火了,光感人感2种传感器感应,做照明品牌的几光曾经无数次幻想过的一个生活画面 :清晨推开厨房的门,有一束微弱的光跟随着自动亮起;然后倒一杯温开水给自己;手清扫过橱柜,一束亮光…

ax200网卡支持Linux吗,Deepin 20和Win10双系统中AX200网卡不能用的请关闭快速启动

如果你有Deepin 20和Win10双系统中机械革命CODE 01 AX200网卡不能用,不能上网的问题,请尝试关闭一下Win10的快速启动,或许问题就能解决了,以下是相关的问题例子。电脑配置参数CPU:AMD R7 4800H。内存:16G D…

线程同步有几种方法_架构师面试必问的多线程状态切换及常用方法

架构师面试必问的多线程状态切换及常用方法一、问题背景Java架构师面试中,多线程状态切换及常用方法几乎是必问的,要掌握创建多线程的方式和方法。二、创建多线程的几种方式2.1方式一继承Threadpublic class ThreadDemo extends Thread{public void run(…

curaengine linux编译,Cura源码在Ubuntu15.04上编译脚本(成功)

Cura是著名的3D打印切片和控制软件。新的版本采用Qt和Python进行了重构,界面变化也非常大,目前还在开发中,运行问题还有不少。这里介绍如何从源代码进行Cura的编译,可以抢先体验新版的界面设计和根据需要进行订制。这个把相关的脚…

线程等待通知 linux,Java 线程协作 wait(等待)与 notiy(通知)

一.wait()、notify()和notifyAll()为了更好的支持多线程之间的协作,JDK提供了三个重要的本地方法//调用某个对象的wait()方法能让当前线程阻塞,并且当前线程必须拥有此对象的锁.public final void wait() throws InterruptedException {wait(0);}//调用某…

新买的笔记本电脑怎么分盘_别再吐槽游戏本越玩越慢:笔记本电脑降速揭秘+散热维护小贴士...

花大价钱买的电竞本,配置越高?降速越狠?夏天到了,日益升高的温度不会影响我们日常搞机的热情~ 新买的4核、6核、8核游戏本照样在各大游戏中征战四方。然而,为什么明明配置很高的笔记本电脑,突然变得如老牛拉…

linux中开启514端口,linux中开启指定端口

1.修改/etc/sysconfig/iptables文件,增加如下一行:-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT重启 iptablesservice iptables restart2.…

zenmap nmap输出无显示_双路显示控制仪XME-H80-1616价格报价

双路显示控制仪XME-H80-1616价格报价 主要性能二十多种输入信号可选择: 测量输入信号可进行开方及小信号切除。 过程量、给定值、控制量、阀位反馈量等多重显示;测量值与给定值的显示可进行加减运算。 控制量PID调节正反作用选择。 可设置PID调节器的上下…

linux查看进程详细信息top,linux查看系统进程信息命令 px,top详解

linux查看系统进程信息命令 px,top详解发表于:2011-03-10来源:作者:点击数:linux查看系统进程信息命令 px,top详解 软件测试 ps ax命令是显示一个当前系统进程的列表,该列表中包括其它用户拥有的进程, -a 显…

capture 部分元器件编号_十大电子元器件及其相关基础知识

导读对于从事电子行业的工程师来说,电子元器件是每天都需要去接触,每天都需要用到的,但其实里面的门门道道很多工程师未必了解。文中列举出工程师们常用的十大电子元器件,及相关的基础概念和知识。常用电子元器件有哪些&#xff1…

linux+硬盘rd5,Raid磁盘阵列

Raid:是冗余磁盘阵列的缩写。raid技术主要解决的问题的容量组合、高读写速度、同步备份(实时备份,即镜像)等功能。Raid的实现方法:硬raid:通过raid卡来raid功能。优点:性能高、稳定性好。 缺点:成本较高,因为需要买rai…

苹果笔记本能玩英雄联盟吗_英雄联盟手游可以玩云顶之弈吗 独立还是内置

众所周知,端游云顶之弈和英雄联盟是一个客户端的,必须下载英雄联盟才能玩云顶之弈。那么Lol手游内能否玩上云顶之弈手游呢?今日光耀菌就解答这个问题,留有疑惑的玩家们快来了解一番吧!LOL手游能玩云顶之弈吗?首先目前版本的lol手游内&#…

linux8安装ftp服务,CentOS8.0 安装配置ftp服务器的实现方法

CentOS8.0-1905发布后,尝试将FTP服务器迁移至新版本的CentOS中,但是测试过程中,在防火墙中开放ftp服务后,仍然一直无法连接,如果使用lftp或ftp工具测试,会提示【没有到主机的路由】错误。但是关闭防火墙后&…

win10关机后自动重启_Win10关机风扇还在转|解决win10关机后风扇继续转方法

Win10如果配合固态硬盘使用,可以实现开关机速度快。但是有些用户发现电脑在关机的时候,屏幕是关掉了,可风扇还继续在转,其主要原因是因为系统还没有完全关闭导致的,这篇文章系统部落将会给大家带来两个解决方法&#x…

linux ssh 插件,玩转VSCode插件之Remote-SSH的使用情况

前言每当更换电脑就要从新搭建一遍开发环境。。。每当拉完最新代码程序在本地跑不起来的时候就要检查服务器和开发电脑的环境。。。每当服务器上出Bug的时候就想如果可以能够调试服务器代码多好啊。。你是不是早就受够了vim这个煞笔编辑器。。。现在最火的是云原生应用&#xf…