科学光束对准,

sciencebeam-alignment的Python项目详细描述


科学光束对准

License: MIT

为ScienceBeam项目提供序列对齐实用程序功能。

先决条件

  • python 2或3

API

序列匹配器

python的SequenceMatcherfuzzywuzzyStringMatcher提供。

在这方面,sciencebeam-alignment仅仅提供了一个带有回退的包装器。

wordsequencematcher

上述SequenceMatcher的包装,但仅在字级标记上匹配。

它目前只实现get_matching_blocks

它的主要优点是对于长文本来说速度更快,因为它不需要匹配单个字符。它不推荐用于短文本,因为在短文本中,字符级对齐可能更可取。

匹配结果示例:

>>>fromsciencebeam_alignment.word_sequence_matcherimport(...WordSequenceMatcher...)>>>WordSequenceMatcher(a='word1',b='word2').get_matching_blocks()[]>>>WordSequenceMatcher(a='a word1 b',b='x word1 y').get_matching_blocks()[(2,2,5)]

GlobalSequenceMatcher和LocalSequenceMatcher

GlobalSequenceMatcher and LocalSequenceMatcher实现了Needleman-Wunschglobal alignment以及Smith-Waterman局部对齐算法。这个实现有点受到python-alignment的启发。

它确实实现了get_matching_blocks以匹配python的SequenceMatcher

通过传入一个计分对象,结果可能会受到影响(例如,差距可能会更大)。

它还提供了使用Cython的优化实现。优化的级别取决于传入序列的类型和评分。最快的是整数序列和简单的评分。

>>>fromsciencebeam_alignment.alignimportLocalSequenceMatcher,SimpleScoring>>>DEFAULT_SCORING=SimpleScoring(match_score=3,mismatch_score=-1,gap_score=-2)>>>LocalSequenceMatcher(a='a word1 b',b='x word2 y',scoring=DEFAULT_SCORING).get_matching_blocks()[(1,1,5),(7,7,1),(9,9,0)]

要检查是否启用了快速实现:

>>>fromsciencebeam_alignment.alignimportnative_enabled>>>native_enabledTrue

开发

可以使用Docker(默认)或虚拟环境进行开发。

所有命令都可以通过make获得。

使用Docker开发

生成并运行测试:

make build test

或用于ci:

make ci-build-and-test

使用虚拟环境开发

make前缀为dev-的目标用于虚拟环境。

这要求您已经安装了python。

设置(虚拟环境)

make dev-venv

要更新依赖项:

make dev-install

cython(虚拟环境)

使用cython编译代码:

make dev-cython-clean dev-cython-compile

测试(虚拟环境)

make dev-test

或:

make dev-watch

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何下载多个。java中的PDF文件   linux Java打开文件,形成实际用户主页~/   java如何在时间线内维护TableView选择?   java Hibernate注释@Where vs@WhereJoinTable   Java读/写访问异常FileNotFoundException(访问被拒绝)   继承在Java中是否可以扩展最后一个类?   Android HttpClient使用java使应用程序崩溃。lang.OutOfMemoryError:pthread_create   java为什么即使我在proguardproject中添加了jar文件,也会出现这种错误。txt?   如果添加JButton,swing Java FocusListener和KeyListener将无法工作   java使用solrj检索json格式的SolrDocument   使用Microsoft Visual Studio代码进行Java编程   java NoClassDefFoundError:org/apache/log4j/Logger   哈希集中包含相等对象的java   java中的参数化构造函数是否需要有一个主体?   java类似于NetBeans不必要的代码检测器   Java实践问题   java Blackberry“[projectname].调试文件丢失”和“I/O错误:找不到程序”jar