Python中文
首页
教程
问答
标签
搜索
登录
注册
在映射任务中,长正则表达式的最佳选择是什么?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一本关于生物医学实体的术语词典。每个术语(键)都有一个标识符(值)列表。你知道吗</p> <p>我必须在自由文本中找到这个术语。我有几本字典,大约有300000个术语,对于这个任务,我使用Python和Java来评估速度。你知道吗</p> <p>算法类似于(在Python中):</p> <pre><code>for sentence in text_list: terms = dictionary.keys() pattern = re.compile("|".join(terms)) matches = pattern.finditer(sentence) for m in matches: ini = m.start() end = m.end() match = m.group(1) save_result(ini, end, match) </code></pre> <p>我正在使用<a href="http://pypi.python.org/pypi/regex" rel="nofollow">pypi.python.org/pypi/regex</a>包,因为标准re包无法编译我的长正则表达式。另外,我也用Java做了同样的算法。你知道吗</p> <p>我使用了大约65万个句子,在Python中,编译需要3-4分钟,算法可以在3-4小时内完成。你知道吗</p> <p>Java在几秒钟内编译regex,但是算法需要16-18小时</p> <p>我一直在阅读不同的网站和<a href="http://swtch.com/~rsc/regexp/regexp1.html" rel="nofollow">http://swtch.com/~rsc/regexp/regexp1.html</a>有一个有趣的信息,但我不知道如何处理。你知道吗</p> <p>我的问题是。。。我已经在3小时内完成了所有的句子,你知道用别的方法在更短的时间内完成同样的句子吗?可能是其他语言,或者使用其他库或包?(在Java中,我使用的是标准库<code>java.util.regex.*</code>)。上面的网站讲的是Thonpson NFA算法,有Java、Python等算法库或包吗?<code>grep</code>(Linux)是一个强大的工具,你认为我可以使用它吗?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>正则表达式对于这项工作来说是一个错误的工具。用你的术语创建一个字典(散列表的Python名称),将文本拆分成单词(使用字符串。拆分以及字符串.rstrip删除标点符号),并对照本词典检查文本中的每个单词。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我是否正确构建了这个递归神经网络
8 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
2 回答
我是否正确理解Keras中的批次大小?
8 回答
我是否正确理解PyTorch的加法和乘法?
8 回答
我是否正确组织了我的Django应用程序?
9 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
4 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
3 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
6 回答
我是否用python安装了socks模块?
2 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
10 回答
我是否缺少spaCy柠檬化中的预处理功能?
8 回答
我是否缺少给定状态下操作的检查?
6 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
1 回答
我是否能够使用用户输入作为colorama模块中的颜色?
3 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
8 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
6 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
8 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
2 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
5 回答
我是否要使它成为递归函数?
5 回答