gpt4 book ai didi

python - 网站域的正则表达式是什么用于标记化,同时将标点符号与单词分开?

转载 作者:行者123 更新时间:2023-12-01 03:38:32 25 4
gpt4 key购买 nike

这是正常输出: enter image description here

我想要的是将域名保留为单个标记。例如:“https://www.twitter.com ”应保留为单个标记。

我的代码:

import nltk
from nltk.tokenize.regexp import RegexpTokenizer

line="My website: http://www.cartoon.com is not accessible."
pattern = r'^(((([A-Za-z0-9]+){1,63}\.)|(([A-Za-z0-9]+(\-)+[A-Za-z0-9]+){1,63}\.))+){1,255}$'
tokeniser=RegexpTokenizer(pattern)

print (tokeniser.tokenize(line))

输出:

[]

我做错了什么?有更好的域名正则表达式吗?

编辑:特殊字符必须保留为单独的标记,如上面的示例所示,标记化必须分隔('website' , ':')。

最佳答案

您可以使用

tokeniser=RegexpTokenizer(r'\b(?:http|ftp)s?://\S*\w|\w+|[^\w\s]+')

请参阅regex demo

详细信息:

  • \b - 前导单词边界(之前必须有一个非单词字符...)
  • (?:http|ftp)s?:// - 协议(protocol)、http/httpsftp/ftps
  • \S* - 0+ 个非空白符号
  • \w - 单词字符 (=字母/数字/_)
  • | - 或
  • \w+ - 1 个或多个单词字符
  • | - 或
  • [^\w\s]+ - 1 个或多个非单词字符(不包括空格)。

关于python - 网站域的正则表达式是什么用于标记化,同时将标点符号与单词分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com