Skip to main content

快速且可定制的分词器

项目描述

## 托克

[![PyPI]( https://img.shields.io/pypi/v/tok.svg?style=flat-square)](https://pypi.python.org/pypi/tok/ ) [![ PyPI]( https://img.shields.io/pypi/pyversions/tok.svg?style=flat-square)]( https://pypi.python.org/pypi/tok/ )

Python 中快速且最完整/可自定义的分词器。

它比 spacy 和 nltk 基于正则表达式的标记器快大约 25 倍。

使用 aho-corasick 算法使其成为一种新颖性,并使其在分裂方式上既可解释又快速。

繁重的工作是由 [textsearch]( https://github.com/kootenpv/textsearch ) 和 [pyahocorasick]( https://github.com/WojciechMula/pyahocorasick ) 完成的,只允许编写大约 200 行的代码。

与基于正则表达式的方法相反,它只会遍历文本中的每个字符一次。阅读 [下文](#how-it-works) 了解其工作原理。

### 安装

点安装tok

### 用法

默认情况下,它处理缩写、http、(浮动)数字和货币。

`python from tok import word_tokenize word_tokenize("我不会那样做......你会吗?") ['I', 'would', 'not', 'do', 'that', '...' , '会', '你', '?'] `

或者自己配置:

`python from tok import Tokenizer tokenizer = Tokenizer(protected_words=["some.thing"]) # 仍然使用默认设置tokenizer.word_tokenize("I want to protect some.thing") ['I', 'want', 'to ','保护','some.thing'] `

按句子分割:

`python from tok import sent_tokenize sent_tokenize("我不会那样做......你会吗?") [['我', '会','不','做','那个','...... '], ['会', '你', '?']] `

有关更多选项,请查看Tokenizer的文档。

### 进一步定制

鉴于:

`python from tok import Tokenizer t = Tokenizer(protected_words=["some.thing"]) # 仍然使用默认值`

您可以使用以下方法将自己的想法添加到标记器中:

  • t.keep(x, reason):只要找到 x,就不会添加空格。防止直接标记化。

  • t.split(x, reason):每当它找到 x 时,它将用空格将其包围,从而创建一个标记。

  • t.drop(x, reason):每当它找到 x 时,它将删除它但添加一个拆分。

  • t.strip(x, reason) : 每当它找到 x 时,它会删除它而不进行拆分。

`python t.drop("bla", "bla 不需要") t.word_tokenize("请删除 bla,谢谢") ['请','删除',',', '谢谢','你' ]`

### 可以解释

解释发生了什么:

`python t.explain("bla") [{'from': 'bla', 'to': '', 'explanation': 'bla is not required '}] `

查看其中的所有内容(将帮助您了解其工作原理):

`python t.explain_dict`

### 这个怎么运作

它总是只保留最长的匹配。通过在您的令牌中引入一个空格,它将使其被拆分。

如果您考虑如何将. 作品,见这里:

  • 当它找到一个 `A.` 时,它会变成 `A.`(单字母缩写)

  • 当它找到.0时,它会变成.0(数字)

  • 当它找到一个. ,它会成功的`。` (因此进行拆分)

如果你想确保包括点在内的东西保持不变,你可以使用例如:

t.keep(“酷”)

### 贡献

如果您想为这个库做出贡献,我们将不胜感激。

为其他语言添加 [contractions]( https://github.com/kootenpv/contractions )也很棒。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

tok-0.1.14.tar.gz (5.6 kB 查看哈希)

已上传 source

内置分布

tok-0.1.14-py2.py3-none-any.whl (7.8 kB 查看哈希

已上传 3 7