Python 替换单引号(撇号除外)

2023-12-03

我正在对单词列表执行以下操作。我从古腾堡项目文本文件中读取行,用空格分割每一行,执行一般标点符号替换,然后在其自己的行上打印每个单词和标点符号标签,以便稍后进一步处理。我不确定如何用标签替换每个单引号或排除所有撇号。我当前的方法是使用编译的正则表达式:

apo = re.compile("[A-Za-z]'[A-Za-z]")

并执行以下操作:

if "'" in word and !apo.search(word):
    word = word.replace("'","\n<singlequote>")

但这忽略了带有撇号的单词周围使用单引号的情况。它也没有向我表明单引号是否紧邻单词的开头或单词的结尾。

输入示例:

don't
'George
ma'am
end.'
didn't.'
'Won't

示例输出(处理并打印到文件后):

don't
<opensingle>
George
ma'am
end
<period>
<closesingle>
didn't
<period>
<closesingle>
<opensingle>
Won't

我确实有一个与此任务相关的进一步问题:因为区分<opensingle> vs <closesingle>看起来相当困难,执行像这样的替换会更明智吗

word = word.replace('.','\n<period>')
word = word.replace(',','\n<comma>')

after执行替换操作?


我建议在这里聪明地工作:使用nltk或另一个 NLP 工具包代替。

对单词进行标记像这样:

import nltk
sentence = """At eight o'clock on Thursday morning
Arthur didn't feel very good."""
tokens = nltk.word_tokenize(sentence)

您可能不喜欢像 don 这样的缩写是分开的。实际上,这是预期的行为。看第401期.

然而,TweetTokenizer 可以帮助解决这个问题:

from nltk.tokenize import tknzr = TweetTokenizer()
tknzr.tokenize("The code didn't work!")

如果涉及更多,RegexpTokenizer 可能会有所帮助:

from nltk.tokenize import RegexpTokenizer
s = "Good muffins cost $3.88\nin New York.  Please don't buy me\njust one of them."
tokenizer = RegexpTokenizer('\w+|\$[\d\.]+|\S+')
tokenizer.tokenize(s)

那么正确注释标记化的单词应该会容易得多。

更多参考:

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

Python 替换单引号(撇号除外) 的相关文章

  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • Matlab filtfilt()函数在Java中的实现

    有没有人尝试过实现matlab的filtfilt Java 中的函数 或者至少在 C 中 如果你们有一个算法 那将会有很大的帮助 好吧 我知道这个问题很古老 但也许我可以帮助那些最终在这里想知道什么的人filtfilt事实上确实如此 尽管从
  • R正则表达式:http匹配

    我在使用正则表达式匹配 http 链接时遇到问题 我有一个想要从网站源代码中提取的模式 源代码有 200 多行 其中有很多 HTML 乱码 例如
  • 找不到支持 iPhone-Portrait-NumberPad 键盘类型 4 的键板;使用 3876877096_Portrait_iPhone-Simple-Pad_Default

    我已经下载了适用于 iPhone 的 iOS 8 Gold Master 和 SDK 我测试了该应用程序 除了一件事之外 它运行良好 我有一个文本字段 如果用户想要输入某些内容 其中会出现数字键盘 此外 当键盘显示时 将在空白区域添加一个自
  • PHP - 需要删除字符串中的重复字符但希望包含异常

    我一直在互联网上寻找解决方案 但找不到 我需要删除字符串中的重复字符 但还想包含一个例外 以允许整数数量的字符重复 保留在字符串中 例如 我尝试了以下操作 str This is a bbbb 999 999 9999 8888888888
  • 有人可以解释哈希表的 Add_member 和 $hashTable.Something 之间的区别吗?

    假设我有一个哈希表 HashTable 现在 当我想向哈希表添加一些内容时 我通常会这样做 HashTable Something Something 当我测试 hashTable 时 它 将显示以下输出 HashTable Name Va
  • 如何转义 LIKE 子句?

    在搜索查询的这一部分中 我们使用的代码很简单 myCriteria Add Expression InsensitiveLike Code itemCode MatchMode Anywhere 这在生产环境中工作得很好 问题是我们的一位客
  • 是否有符合 POSIX 标准的方法来获取我的计算机的本地网络 IP 地址?

    我知道这个问题已经以这样或那样的形式被问了一百万次 但没有一个问题给了我一种符合 POSIX 的方式来做到这一点 我需要获取我的计算机的本地网络地址without using getifaddrs或任何其他不符合 POSIX 标准的访问接口
  • RichFaces 文件上传和 h:message 问题

    我正在使用 RichFaces 4 我的问题是该消息根本不出现 如果我使用 rich message 该消息会短暂出现然后消失 这是控制器 public void uploadListener final FileUploadEvent e
  • Zend Framework 2 bin 文件夹中“Zend Tool Missing”

    我是框架新手 但我在安装 zend 1 x 版本等方面没有任何困难 但是ZF2真的搞不懂 任何资源告诉我使用 zend 工具创建项目 即 bin 目录中的 zf bat 或 zf sh 但与 zf1 相比 zf2 bin 文件夹中没有它们
  • 在Cypress(mysql2)中测试时无法连接到MySQL数据库

    运行集成测试时出现错误 0 passing 17s 1 failure 1 Registration page register new users allowed and update status in the database Typ
  • 多个三元运算符

    我需要一些关于三元运算符的语法帮助 这将帮助我将正确的标记图标放在我的好地图上 我有三个区域 0 1 和 2 它们具有独特的图标 0 1 和 2 我以前只有两个区域 所以这个三元运算符工作得很好 var icon area 1 icon1
  • 在 Projection.Conditionals 中添加多个条件以进行查询

    我正在尝试写一个包含多个的案例when条款 像这样的东西 case when starks then 1 when wildlings then 2 when lannisters then 3 Else 0 End 我以前做过一个条件条件
  • GeventSocketIOWorker 没有属性“socket”

    我需要使用 Gunicorn 运行 Django 应用程序 我阅读了文档 我想我已经按照我应该的方式设置了所有内容 但是当我运行时 gunicorn worker class socketio sgunicorn GeventSocketI
  • Date.addingTimeInterval(_:) 和 Date.advanced(by:) 有什么区别?

    基金会的Datestruct 提供了两者Date addingTimeInterval and Date advanced by 它们在功能上似乎相同 但显然是不同的方法 它们之间实际上有区别还是最终相同 查看文档 advanced by
  • 使用 Tensorflow-Hub 中的 ELMo 时内存消耗大幅增加

    我目前正在尝试比较数百万个文档的相似性 对于 CPU 上的第一次测试 我将它们减少到每个字符大约 50 个 并尝试一次为其中 10 个字符获取 ELMo 嵌入 如下所示 ELMO https tfhub dev google elmo 2
  • Mockito、JUnit 和 Spring

    我今天才开始了解Mockito 我编写了一些简单的测试 使用 JUnit 见下文 但我不知道如何在 Spring 的托管 bean 中使用模拟对象 什么是最佳实践用于与 Spring 一起工作 我应该如何向我的 bean 注入模拟依赖项 你
  • 找不到 Microsoft.AspNet.SignalR.Server 3.0.0-beta7

    我在引用包时遇到问题 Microsoft AspNet SignalR Server 3 0 0 beta7 我唯一可以安装的是 测试版 5 版本 我在网上看到过其他例子 人们do引用这个 beta7 包 但我似乎找不到它 下面是我当前的
  • gdb 如何启动汇编编译的程序并一次执行一行?

    Valgrind 在他们的文档页面上说了以下内容 然后 您的程序将在 Valgrind 核心提供的合成 CPU 上运行 然而GDB似乎并没有这样做 它似乎启动了一个独立执行的单独进程 据我所知 也没有c 库 这就是我所做的 使用 clang
  • 删除sequelize返回值中的连接表数据

    我目前正在尝试删除一个joint检索关联数据时添加的表数据 查询是通过使用通过指定模型关系添加到模型的方法的sequelize来完成的 sequelize magic methods 由于某种原因 我无法做到这一点 我目前已尝试传递attr
  • Python 替换单引号(撇号除外)

    我正在对单词列表执行以下操作 我从古腾堡项目文本文件中读取行 用空格分割每一行 执行一般标点符号替换 然后在其自己的行上打印每个单词和标点符号标签 以便稍后进一步处理 我不确定如何用标签替换每个单引号或排除所有撇号 我当前的方法是使用编译的