首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python - Regex“机器学习”

Python - Regex“机器学习”
EN

Stack Overflow用户
提问于 2013-03-03 08:04:23
回答 3查看 1.4K关注 0票数 4

我有成千上万行的文本,我需要在那里找到货币表示法,例如:

代码语言:javascript
运行
AI代码解释
复制
Lorem ipsum dolor sit amet, 100.000,00 USD sadipscing elitr, sed diam nonumy eirmod 
GBP 400 ut labore et dolore magna aliquyam erat, sed diam voluptua. At USD 20 eos et 
accusam et justo duo dolores et 100,000.00 USD  ea rebum. Stet 3,-- USD gubergren, no 

Python脚本应该返回转换为USD的金额。(例如,100000USF、400英镑->美元等)

到目前为止,我所做的是手动创建数字-货币组合的正则表达式来检索值,然后将货币与数据库进行比较并计算汇率。

然而,这既不是有效的,也不是未来的证据(例如,如果添加了另一种货币),所以我想知道是否有一种有效的机器学习算法,我可以用一些例子来“训练”,然后它试图找到一些“价值-货币”的组合?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-03 09:17:08

您的问题没有很好地定义,但不需要机器学习。可能的货币集合是有限的并且很小,并且货币表示的集合不能复杂到不能作为正则表达式来表达。您根本没有使用正则表达式的全部功能。

例如,要匹配多个货币,请使用:

代码语言:javascript
运行
AI代码解释
复制
    currency = r"((USD)|(GBP)(...))"

然后,您可以表达表示的数字部分

代码语言:javascript
运行
AI代码解释
复制
    numbers = r"([0-9]+[0-9\.,]*)"

编译正则表达式:

代码语言:javascript
运行
AI代码解释
复制
    matcher = re.compile(numbers+r"[\s]*+"currency)

您可以创建第二个匹配器,该匹配器首先匹配货币。你也许可以在可选的捕获组之类的地方使用一些聪明的东西,但是如果性能不是一个大问题,我会推荐一个简单的第二个匹配器。

代码语言:javascript
运行
AI代码解释
复制
    matcher2 = re.compile(currency+r"[\s]*"+numbers)

请注意,“currency”正则表达式不需要手动创建。一旦有匹配,您就可以访问相应的组号(1或3)来获取匹配的货币。例如:

代码语言:javascript
运行
AI代码解释
复制
    curren = m.group(1)
    amount = m.group(2)

这是可能的,因为整个“货币”正则表达式被视为一个单独的组。

票数 2
EN

Stack Overflow用户

发布于 2013-03-03 09:40:03

人类甚至可以学习缩写词是否是一种货币?如果一种新的货币突然出现,那么它与任何其他任意的缩写词有什么区别?假设你遇到了像“1000CPU”这样的东西,如果你不知道CPU是什么,你怎么知道它是(或不是)货币?

您可以使用自然语言处理来查看有问题的数字周围的上下文,但这将需要更多的处理,并且您永远无法确定。

我的观点是:对于这个问题,如果机器学习是适用的,那就有点过头了。

为什么要用困难的方式做一些事情,而用另一种方法做起来更容易、更准确?

票数 3
EN

Stack Overflow用户

发布于 2013-03-03 09:57:31

我只会使用正则表达式来粗略地提取可能的对:

代码语言:javascript
运行
AI代码解释
复制
import re

test = '''Lorem ipsum dolor sit amet, 100.000,00 USD sadipscing elitr, sed diam nonumy eirmod 
GBP 400 ut labore et dolore magna aliquyam erat, sed diam voluptua. At USD 20 eos et 
accusam et justo duo dolores et 100,000.00 USD  ea rebum. Stet 3,-- USD gubergren, no'''

number = r'([\d+.,]+)'
currency = r'([A-Z]{2,3})'

r1 = re.compile(number + r'\s+' + currency)
r2 = re.compile(currency + r'\s+' + number)

matches = r1.findall(test) + r2.findall(test)

print(matches)

我得到了:

代码语言:javascript
运行
AI代码解释
复制
[('100.000,00', 'USD'), ('100,000.00', 'USD'), ('GBP', '400'), ('USD', '20')]

从那里,您可以解析数字并过滤掉不存在的货币。你只有五六种可能的格式,所以在这里机器学习真的无能为力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15183685

复制
相关文章
python regex replace
正则匹配-直接内容替换 s = 'dsoheoifsdfscoopaldshfowefcoopasdfjkl;' ss = s.replace('coop','###') print(s,'\n',ss) dsoheoifsdfscoopaldshfowefcoopasdfjkl; dsoheoifsdfs###aldshfowef###asdfjkl; import re regex = re.compile(r'coop') # 正则匹配替换 regex.sub('$$$$$','sdlaf
py3study
2020/01/08
2.4K0
C++ 新特性学习(三) — Regex库
这个,显然是正则表达式库,作为一个强大而又NB的库,我表示对其理解甚少,只能先研究下基本用法,更具体的用法要等实际应用中用到的时候在细看了。 PS:正则表达式的资料见 http://www.regexlab.com/ 更多资料见 https://www.owent.net/2011/264.html
owent
2018/08/01
1.4K0
掌握 Python RegEx:深入探讨模式匹配
正则表达式通常缩写为 regex,是处理文本的有效工具。本质上,它们由一系列建立搜索模式的字符组成。该模式可用于广泛的字符串操作,包括匹配模式、替换文本和分割字符串。
数据科学工厂
2023/08/10
2420
掌握 Python RegEx:深入探讨模式匹配
【Python机器学习】系列之机器学习基础
谢谢大家的支持!现在该公众号开通了评论留言功能,你们对每篇推文的留言与问题,可以通过【写评论】给圈主留言,圈主会及时回复您的留言。 自2007年发布以来,scikit-learn已经成为最给力的Python机器学习库(library)了。scikit-learn支持的机器学习算法包括分类,回归,降维和聚类。还有一些特征提取(extracting features)、数据处理(processing data)和模型评估(evaluating models)的模块。作为Scipy库的扩展,scikit-le
量化投资与机器学习微信公众号
2018/01/29
8190
【教程】机器学习Python教程:1机器学习
机器学习是一种编程,它使计算机能够在没有显式编程的情况下自动地从数据中学习。换句话说,这意味着这些程序通过学习数据来改变它们的行为。
陆勤_数据人网
2018/08/20
5830
【教程】机器学习Python教程:1机器学习
【机器学习】--Python机器学习库之Numpy
NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。 NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。
LhWorld哥陪你聊算法
2018/09/13
8890
【机器学习】--Python机器学习库之Numpy
python机器学习中英
针对房价预测的回归预测能力排名,R-squared(用来衡量模型回归结果的波动可被真实值验证的百分比,也暗示了模型在数值回归方面的能力)
py3study
2020/01/10
4860
[Dream Big, Think Big, Achieve Big!] Regex Matching Problems 2
包子IT面试培训 助你拿到理想的offer! 有问题,问包子!Got question? Ask Baozi! 接着上一轮关于regex的博客讨论,下面我们讨论一下另一道比较常见的regular e
包子面试培训
2018/04/20
8730
boost::string or boost::regex
当中用蓝色标记出的部分(layout, local_size_x, local_size_y, local_size_z, in)为keyword,斜体字部分(a, b, c)为数据类型为unsigned int的数字,请编写一个函数,用于从文件里抽取出a, b, c的值。当中文件名称为输入參数,该函数的返回值是抽取得到的a,b,c三个值。
全栈程序员站长
2022/07/08
2.2K0
python机器学习基础
最常见的机器学习类型。给定一组样本(通常是人工标准),它可以学会将数据映射到已知目标(也叫标注)。监督学习广泛应用到光学字符识别、语音识别、图像分类和语言翻译。
皮大大
2023/08/23
1860
Python机器学习教程—前传:机器学习介绍(1)
笔者是一名软件工程在读研究生,同样是机器学习的爱好者,希望我所总结的内容能以简单直白的方式帮助读者们理解机器学习并了解如何利用Python来做机器学习。不需要走很多弯路,只需要准备好python的JupyterNotebook或Pycharm等,做好笔记。我很快带你入门。
丹牛Daniel
2022/11/11
3690
Python机器学习教程—前传:机器学习介绍(1)
Python机器学习教程—前传:机器学习介绍(2)
上文介绍了机器学习是什么。让我们来简单回顾一下,其实机器学习解决的问题是:机器学习模型根据已知数据的输入与输出进行学习,发现已知数据输入与输出的规律并总结下来,进而利用总结的规律对未知数据进行预测。本文接着上文来继续介绍机器学习的基础知识,适合小白入门,大神请跳过。
丹牛Daniel
2022/11/11
3270
Python机器学习教程—前传:机器学习介绍(2)
【教程】机器学习Python教程:2机器学习术语
这意味着分类器在42个案例中正确地预测了为男性,并错误地预测了8个男性案例为女性。它正确地预测了32例女性,18例被错误地预测为男性而不是女性。
陆勤_数据人网
2018/08/20
5020
【教程】机器学习Python教程:2机器学习术语
机器学习实战 | Python机器学习算法应用实践
教程地址:http://www.showmeai.tech/tutorials/41
ShowMeAI
2022/03/21
1.6K0
机器学习实战 | Python机器学习算法应用实践
【机器学习】Python语言下的机器学习库
Python是最好的编程语言之一,在科学计算中用途广泛:计算机视觉、人工智能、数学、天文等。它同样适用于机器学习也是意料之中的事。 当然,它也有些缺点;其中一个是工具和库过于分散。如果你是拥有unix思维(unix-minded)的人,你会觉得每个工具只做一件事并且把它做好是非常方便的。但是你也需要知道不同库和工具的优缺点,这样在构建系统时才能做出合理的决策。工具本身不能改善系统或产品,但是使用正确的工具,我们可以工作得更高效,生产率更高。因此了解正确的工具,对你的工作领域是非常重要的。 这篇文章的目的就是
陆勤_数据人网
2018/02/26
7990
Python 爬虫第一篇(urllib+regex)
爬虫的主要用途即从网站上获取网页,并将网页中的有用信息解析出来。从网站上获取网页内容可以通过 python 内置的 urllib 模块来实现,至于信息的解析说起来比较复杂,python 中可以使用的模块也有很多,今天我们主要使用正则表达式「python 内置的 re 模块」来实现数据的解析。
keinYe
2019/08/01
7240
Python 爬虫第一篇(urllib+regex)
【Python环境】Python机器学习库
Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy。其中Numpy是一个用python实现的科学计算包。包括: 一个强大的N维数组对象Array; 比较成熟的(广播)函数库; 用于整合C/C++和Fortran代码的工具包; 实用的线性代数、傅里叶变换和随机数生成函数。 SciPy是一个开源的Python算法库和数学工具包,SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。其功能与软
陆勤_数据人网
2018/02/27
1.1K0
C: GNU regex library (regex.h)正则表达式调用示例
GNU regex是GNU提供的跨平台的POSIX 正则表达式库(C语言)。 我也是最近才接触这个相对于C++/Java实现来说非常简陋,勉强够用的正则表达式库。 不算GNU提供的扩展函数,POSIX标准的regex库总共就4个函数regcomp,regerror,regexec,regfree, 以下以完整源码的方式调用以上函数完成对GNU regex library的基本测试。
10km
2021/11/15
1.1K0
gcc报错:terminate called after throwing an instance of ‘std::regex_error‘ what(): regex
mkdir build …/./configure make & make install
花狗Fdog
2022/05/09
2.2K0
Python机器学习:6本机器学习书籍推
机器学习是实现人工智能的一种途径,它和数据开掘有一定的相似性,也是一门多领域交叉学科,触及概率论、核算学、逼近论、凸剖析、核算复杂性理论等多门学科。对比于数据开掘从大数据之间找互相特性而言,机器学习愈加注重算法的设计,让核算机可以白动地从数据中“学习”规则,并利用规则对不知道数据进行猜测。因为学习算法触及了很多的核算学理论,与核算揣度联络尤为严密。
py3study
2020/01/16
1.5K1

相似问题

Python -机器学习

35

IndexError机器-学习Python

18

机器学习任务Python

26

蓝色机器学习- python

24

Python机器学习函数

82
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文