Python 如何在标点符号上拆分文本,而不是在电子邮件或其他表达式上拆分文本? 我希望在标点符号上拆分文本,而不是在电子邮件上——考虑到Unicode必须使用,因为不是所有的人都会说英语。 import re example = 'My email is John@gmail.com. My name is John. Her email is Anna@gmail.com' print re.split('[.]\s*', example, re.UNICODE) # gives ['My email is John@gmail', 'com', 'My name is John', 'Her email is Anna@gmail', 'com'] # required ['My email is John@gmail.com', 'My name is John', 'Her email is Anna@gmail.com']
如何正确地将其分开-我知道正则表达式,但不知道如何解决-我认为这将不起作用,因为字符数是不固定的 我可以写并行匹配的第一个电子邮件分隔符,并认为电子邮件总是赢得分隔符。Python 如何在标点符号上拆分文本,而不是在电子邮件或其他表达式上拆分文本? 我希望在标点符号上拆分文本,而不是在电子邮件上——考虑到Unicode必须使用,因为不是所有的人都会说英语。 import re example = 'My email is John@gmail.com. My name is John. Her email is Anna@gmail.com' print re.split('[.]\s*', example, re.UNICODE) # gives ['My email is John@gmail', 'com', 'My name is John', 'Her email is Anna@gmail', 'com'] # required ['My email is John@gmail.com', 'My name is John', 'Her email is Anna@gmail.com'],python,regex,nlp,Python,Regex,Nlp,如何正确地将其分开-我知道正则表达式,但不知道如何解决-我认为这将不起作用,因为字符数是不固定的 我可以写并行匹配的第一个电子邮件分隔符,并认为电子邮件总是赢得分隔符。 考虑到人类是不完美的,这是自然语言,所以例子可以是-我们应该帮助他们解决简单的错误,但不是全部: 'My email is john@www.mysite.pl.I am teenager.' 'My email is john@www.mysite.pl. I am teenager.' 可以学习并保存在一些字典中,如“.
考虑到人类是不完美的,这是自然语言,所以例子可以是-我们应该帮助他们解决简单的错误,但不是全部:
'My email is john@www.mysite.pl.I am teenager.'
'My email is john@www.mysite.pl. I am teenager.'
可以学习并保存在一些字典中,如“.com |.pl |…”。对于您眼前的问题,您是否注意到这可以解决它:
re.split('[.]\s+'
除此之外,人们还做了几件事:
对于您眼前的问题,您是否注意到这可以解决它:
re.split('[.]\s+'
除此之外,人们还做了几件事:
对于您眼前的问题,您是否注意到这可以解决它:
re.split('[.]\s+'
除此之外,人们还做了几件事:
对于您眼前的问题,您是否注意到这可以解决它:
re.split('[.]\s+'
除此之外,人们还做了几件事:
这并不是那么容易,但举个例子,它可能与消极的前瞻性有关:
>>> import re
>>>
>>> print re.split('\.(?!com)', example, re.UNICODE)
['My email is John@gmail.com', ' My name is John', ' Her email is Anna@gmail.com']
假设只有.com顶级域足以找到解决方案
更新
另一个例子是一次失败john@www.mysite.pl.I
,但您写了:
我们应该帮助他们解决简单的错误,但不是全部
)) 这并不是那么容易,但举个例子,它可能与消极的前瞻性有关:
>>> import re
>>>
>>> print re.split('\.(?!com)', example, re.UNICODE)
['My email is John@gmail.com', ' My name is John', ' Her email is Anna@gmail.com']
假设只有.com顶级域足以找到解决方案
更新
另一个例子是一次失败john@www.mysite.pl.I
,但您写了:
我们应该帮助他们解决简单的错误,但不是全部
)) 这并不是那么容易,但举个例子,它可能与消极的前瞻性有关:
>>> import re
>>>
>>> print re.split('\.(?!com)', example, re.UNICODE)
['My email is John@gmail.com', ' My name is John', ' Her email is Anna@gmail.com']
假设只有.com顶级域足以找到解决方案
更新
另一个例子是一次失败john@www.mysite.pl.I
,但您写了:
我们应该帮助他们解决简单的错误,但不是全部
)) 这并不是那么容易,但举个例子,它可能与消极的前瞻性有关:
>>> import re
>>>
>>> print re.split('\.(?!com)', example, re.UNICODE)
['My email is John@gmail.com', ' My name is John', ' Her email is Anna@gmail.com']
假设只有.com顶级域足以找到解决方案
更新
另一个例子是一次失败john@www.mysite.pl.I
,但您写了:
我们应该帮助他们解决简单的错误,但不是全部
)) > P>在java和C中这样做的一种常见方法是使用ICU库,它提供了一种称为中断迭代器的机制,它可以由正则表达式文件配置来识别文本中的任意数量的正则模式,您要考虑整个令牌(电子邮件、数字、电话号码等) 正如我所看到的,有一个Python版本
也是处理Unicode文本的库。
< P>在java和C中这样做的一种常见方法是使用ICU库,它提供了一种称为断代迭代器的机制,它可以由正则表达式文件配置,以识别文本中要考虑的整数的任意数量的模式。(电子邮件、号码、电话号码等) 正如我所看到的,有一个Python版本也是处理Unicode文本的库。
< P>在java和C中这样做的一种常见方法是使用ICU库,它提供了一种称为断代迭代器的机制,它可以由正则表达式文件配置,以识别文本中要考虑的整数的任意数量的模式。(电子邮件、号码、电话号码等) 正如我所看到的,有一个Python版本也是处理Unicode文本的库。
< P>在java和C中这样做的一种常见方法是使用ICU库,它提供了一种称为断代迭代器的机制,它可以由正则表达式文件配置,以识别文本中要考虑的整数的任意数量的模式。(电子邮件、号码、电话号码等) 正如我所看到的,有一个Python版本它也是处理Unicode文本时应该使用的库。你有一些数据可以用来测试这些东西吗?我不认为你能找到一个解决方案来解决所有可能出现的问题……但你可以覆盖大多数情况,包括@之后的顶级lvl域,以及“.”规则和标志不匹配之后的空格,以供审查和我我有足够的数据进行测试(整个互联网)。正如我之前所说,你不会有解决所有问题的解决方案,但我想解决最基本的问题-假设只有
.com
顶级域足以找到解决方案。这不是一个e