NLTK WordNetLemmatizer:未按预期进行词形还原

2023-12-07

我正在尝试使用 NLTK 的 WordNetLemmatizer 对句子中的所有单词进行词形还原。我有很多句子,但我只是使用第一句话来确保我正确执行此操作。这是我所拥有的:

train_sentences[0]

"Explanation Why edits made username Hardcore Metallica Fan reverted? They vandalisms, closure GAs I voted New York Dolls FAC. And please remove template talk page since I'm retired now.89.205.38.27"

所以现在我尝试按如下方式对每个单词进行词形还原:

lemmatizer = WordNetLemmatizer()
new_sent = [lemmatizer.lemmatize(word) for word in train_sentences[0].split()]
print(new_sent)

我回来了:

['Explanation', 'Why', 'edits', 'made', 'username', 'Hardcore', 'Metallica', 'Fan', 'reverted?', 'They', 'vandalisms,', 'closure', 'GAs', 'I', 'voted', 'New', 'York', 'Dolls', 'FAC.', 'And', 'please', 'remove', 'template', 'talk', 'page', 'since', "I'm", 'retired', 'now.89.205.38.27']

有几个问题:

1)为什么“编辑”没有转化为“编辑”?诚然,如果我这样做lemmatizer.lemmatize("edits")我回来了edits但很惊讶。

2)为什么“破坏行为”没有转化为“破坏行为”?这非常令人惊讶,因为如果我这样做lemmatizer.lemmatize("vandalisms"),我回来了vandalism...

任何澄清/指导都会很棒!


TL;DR

首先标记句子,然后使用词性标记作为词形还原的附加参数输入。

from nltk import pos_tag
from nltk.stem import WordNetLemmatizer

wnl = WordNetLemmatizer()

def penn2morphy(penntag):
    """ Converts Penn Treebank tags to WordNet. """
    morphy_tag = {'NN':'n', 'JJ':'a',
                  'VB':'v', 'RB':'r'}
    try:
        return morphy_tag[penntag[:2]]
    except:
        return 'n' 

def lemmatize_sent(text): 
    # Text input is string, returns lowercased strings.
    return [wnl.lemmatize(word.lower(), pos=penn2morphy(tag)) 
            for word, tag in pos_tag(word_tokenize(text))]

lemmatize_sent('He is walking to school')

有关如何以及为何需要 POS 标签的详细演练,请参阅https://www.kaggle.com/alvations/basic-nlp-with-nltk


或者,您可以使用pywsdtokenizer + lemmatizer,NLTK 的包装器WordNetLemmatizer:

Install:

pip install -U nltk
python -m nltk.downloader popular
pip install -U pywsd

Code:

>>> from pywsd.utils import lemmatize_sentence
Warming up PyWSD (takes ~10 secs)... took 9.307677984237671 secs.

>>> text = "Mary leaves the room"
>>> lemmatize_sentence(text)
['mary', 'leave', 'the', 'room']

>>> text = 'Dew drops fall from the leaves'
>>> lemmatize_sentence(text)
['dew', 'drop', 'fall', 'from', 'the', 'leaf']

(版主请注意:我不能将此问题标记为重复nltk:如何将周围的单词融入上下文中进行词形还原?因为答案在那里没有被接受,但它是重复的)。

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

NLTK WordNetLemmatizer:未按预期进行词形还原 的相关文章

  • 使用请求验证 SSL 证书

    我正在尝试验证 SSL 但它不起作用 我在浏览器上访问了我想要访问的机密网站 在 Chrome 上 我单击了储物柜 gt 证书 gt 详细信息 gt 复制到文件 gt base64 gt cert cer 我的代码是 test reques
  • 将tensorflow 2.0 BatchDataset转换为numpy数组

    我有这个代码 train images test images tf keras datasets mnist load data train dataset tf data Dataset from tensor slices train
  • 在 Pandas 中按日期获取有效合约

    我在检测 pandas DataFrame 中的活动合约方面遇到了一些困难 假设每一行都是一个协商 对于每一行 我有两列 initial date 和 end date 我想知道的是按日期划分的活跃合约数量 到目前为止我做了一个非常低效的方
  • 在Python3.6中调用C#代码

    由于完全不了解 C 编码 我希望在我的 python 代码中调用 C 函数 我知道有很多关于同一问题的问答 但由于一些奇怪的原因 我无法从示例 python 模块导入简单的 c 类库 以下是我所做的事情 C 类库设置 我使用的是 VS 20
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • Python BeautifulSoup XML 解析

    我编写了一个简单的脚本来使用 BeautifulSoup 模块解析 XML 聊天日志 标准 soup prettify 工作正常 只是聊天日志中有很多绒毛 您可以在下面看到我正在使用的脚本代码和一些 XML 输入文件 Code import
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • Paramiko - 使用私钥连接 - 不是有效的 OPENSSH 私钥/公钥文件

    我正在尝试找到解决方案 但无法理解我做错了什么 在我的 Linux 服务器上 我运行了以下命令 ssh keygen t rsa 这产生了一个id rsa and id rsa pub file 然后我将它们复制到本地并尝试运行以下代码 s
  • PIL Image.size 返回相反的宽度/高度

    使用PIL确定图像的宽度和高度 在特定图像上 幸运的是只有这一个 但这很麻烦 从 image size 返回的宽度 高度是相反的 图片 http storage googleapis com cookila 533ebf752b9d1f7c
  • 为什么 Python 中的“pip install”会引发语法错误?

    我正在尝试使用 pip 安装软件包 我试着跑pip install从Python shell 但我得到了SyntaxError 为什么我会收到此错误 如何使用 pip 安装软件包 gt gt gt pip install selenium
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • 如何在 Python 中将彩色输出打印到终端?

    是否有与 Perl 等效的 Python 语言 print color red print
  • 在可编辑的QSqlQueryModel中实现setEditStrategy

    这是后续这个问题 https stackoverflow com questions 49752388 editable qtableview of complex sql query 在那里 我们创建了 QSqlQueryModel 的可
  • 无法截取宽度为 0 的屏幕截图

    我正在尝试截取 Bootstrap 模态内元素的屏幕截图 经过一番努力 我终于想出了这段代码 driver get https enlinea sunedu gob pe driver find element by xpath div c
  • Matplotlib Scatter - ValueError:RGBA 序列的长度应为 3 或 4

    我正在尝试为我的功能绘制图表 但不断收到此错误 ValueError RGBA sequence should have length 3 or 4 每当我只有 6 种形状时 代码就可以完美运行 但现在我将其增加到 10 种 它就不起作用了
  • 导入错误:没有名为 google.auth 的模块

    当我尝试导入时firebase admin in python 2 7我收到错误 导入错误 没有名为 google auth 的模块 这是Docker文件 https github com ammaratef45 Attendance bl
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • 在 WP8 WebBrowser 控件中显示 m.bing.com

    我在 Windows Phone 8 上的 WebBrowser 控件中加载 bing com 时遇到问题 这样做似乎会启动 WP8 搜索应用程序 与按手机上的搜索按钮相同 问题是 一旦您单击该搜索应用程序中的结果 它不会带您返回原始应用程
  • WPF ComboBox SelectedItem 未更新

    我在与某公司合作时遇到问题WPF 组合框 我的情况是我有一个显示一些值的组合框 我正在添加ContentControls 到组合框 Items财产 我已经绑定了Content这些 ContentControl 到某个数据源 以便我可以动态更
  • 基于 WooCommerce 中特定产品地理位置的自定义重定向

    如果德国客户尝试访问产品页面 我需要将他们重定向到自定义页面 并且我已经开始将一些内容放在一起 但我不知道如何完成 这是我得到的 add action do not know which hook to use geo origin red
  • 停止在 MAMP 中缓存 PHP 5.5.3

    使用 PHP 5 5 3 在新 Macbook 上安装了 MAMP 重新加载和刷新什么也不做 依然没有 谷歌几分钟试图找出问题所在 然后回来刷新 有用 有没有搞错 我进入 php ini 并禁用所有新的 OPcache 并将默认缓存时间设置
  • 如何将访问过的页面 URL 添加到会话数组中?

    每次用户访问页面时 页面 url 都会存储到数组会话中 我只想在数组中有 10 个元素 这样 10 个元素将保存 10 个最近访问的页面 url 这是我的代码 我测试了
  • 转置(3,0,1,2)是什么意思?

    这是什么意思 data transpose 3 0 1 2 另外 如果data shape 10 10 10 为什么我得到ValueError axes don t match array 我先从Python3的角度来讨论一下 我在Pyth
  • 将本地 mosquitto 桥接到云代理

    我正在尝试将本地 mosquitto 在树莓派上 桥接到某个云代理 以便我可以发送数据并使用该数据控制某些设备 我尝试使用 Cloudmqtt 和 dioty 但没有成功 在 cloudmqtt 的情况下 我被告知 mosquitto co
  • Android - 如何将文件附加到短信?

    我需要通过短信发送联系方式 所以 我使用 vcf 文件 不过 我需要将它附加到 android SDK 中的短信 android中有这样的功能 我在智能手机上尝试过 我几天来一直在寻找做到这一点的方法 到目前为止我发现的一切都是这个构建 v
  • 将 B 隐藏在 A
    B

    我有一个 h2 foo br bar h2 我想隐藏 bar 但我找不到合适的选择器 有可能吗 我认为你应该将 B 包裹起来 span B span 并隐藏该跨度
  • dataSnapshot 具有对象,但 getValue() 将返回 null

    所以我现在正在为这个问题苦苦挣扎大约三个小时 我有这个用户类别 public class User private String user id private String userName private long phoneNumbe
  • 如何在Python中查找任何包的“导入名称”?

    我想知道是否有任何可靠且一致的方法来获取Python包 导入名称 命名空间 例如 Package Django 干草堆 导入名称 草垛 or Package 蟒蛇 导入名称 Python 到目前为止我知道 PyPi 不存储我用 PyPiXm
  • C#.net 中的弹出窗口

    如何在单击按钮时弹出子窗体 我希望子 winform 位于屏幕中央 并且整个背景屏幕应该模糊 并且在表单的右上角应该可以看到一个小的关闭按钮 我在网上搜索过但一无所获 使用Winforms 制作一个新的窗口窗体 默认情况下它有一个关闭按钮
  • 键“P​​RIMARY”的重复条目。忽略字符串的空格

    mysql gt CREATE TABLE primary2 boom text id int PRIMARY KEY boom 5 Query OK 0 rows affected 0 04 sec mysql gt INSERT INT
  • SQL 存储过程参数已损坏?

    我有一个存储过程 目前只是假设将您的字符串输入验证为有效日期 我尝试在程序之外运行它 它工作完美 但是一旦我将其放入程序中 参数就会更改为零 我的程序如下 CREATE PROCEDURE spDateRange DateMin varch
  • C - 按升序插入链表

    我正在尝试创建一个程序 将数字按升序插入链接列表中 这是我的插入功能 它适用于插入一些数字 但不适用于其他数字 我认为这与最后一部分有关 但我无法弄清楚 node insert node head int value check if he
  • vb.net查询显示数据表的特定行[基础]

    如何在表中显示查询返回的特定行 查询代码为 SELECT name STD Fees paid FROM register WHERE paid Fees lt 0 我收到错误 An unhandled exception of type
  • 将 boost::bind 函数存储在 std::map 中

    我正在创建一堆函数 它们都有效地执行相同的操作 long Foo check long retValue unsigned toCheck const std set
  • peerjs/webrtciceConnectionState 失败

    我已经尝试解决这个问题有一段时间了 我正在尝试使用peerjs 建立一个简单的连接 我可以成功连接到具有 id 的对等点USER ID 但是 他们无法连接到我 当他们尝试连接时 我收到以下日志 iceConnectionState更改为fa
  • 安装报纸时导入错误

    我对 python 很陌生 正在尝试导入报纸以进行文章提取 每当我尝试导入模块时 我都会得到ImportError cannot import name images 有人遇到过这个问题并找到解决方案吗 我能够通过创建一个来解决这个问题im
  • NLTK WordNetLemmatizer:未按预期进行词形还原

    我正在尝试使用 NLTK 的 WordNetLemmatizer 对句子中的所有单词进行词形还原 我有很多句子 但我只是使用第一句话来确保我正确执行此操作 这是我所拥有的 train sentences 0 Explanation Why