NLP 预处理包
项目描述
# purewords
Purewords 是一个用于清理所有语言的原始文本的包。
## 安装
`pip install purewords`
## 用法
### 模块用法:
```python
import purewords
# raw sentence
inputs = "ha hi!!hello I\'m at http:www.google.com.tw\n \n"
+ "你知道yahoo吗?my_computer很棒。我的电话号码"
+ "是02-3366-5678。<br>的啦<br>我的密码:123-abc$99&^%Y)\'_\ '(Y "
```
#### 将输入视为一个句子并清理它。
单词标记用空格分隔
``python
# result: string
purewords.clean_sentence(inputs)
'哈哈,你好,我在 _url_ 你知道 yahoo 我的电脑很棒 我的电话号码是 _phone_ 我的密码 _num_ abc _num_ y y'
```
#### 将输入视为文档并清理它。
使用一些自信的拆分标记拆分文档,例如“。” 或者 '?'。
```python
# 结果:已清理字符串列表
purewords.clean_document(inputs)
['ha hi', 'hello i am at _url_', 'you know yahoo', 'my computer is great', '我的电话号码是 _phone_ ', '的我的密码_num_ abc _num_ y y']
```
### 自定义你的purewords
你可以在purewords 中使用不同的设置。
```python 从purewords.tokenizer导入purewords导入
YoctolTokenizer
from purewords.filter_collection import document_filters
from purewords.filter_collection import token_filters
tokenizer = YoctolTokenizer()
pw = purewords.PureWords(
tokenizer=tokenizer, # 选择你的tokenizer
document_filters=document_filters, # 选择你的文档过滤器
token_filters=token_filters, # 选择你的token过滤器
max_len =200, # 剪掉长度超过 max_len
min_len=1 的长句 #忽略短句
)
inputs = 'This is a sentence.'
pw.clean_sentence(inputs)
pw.clean_document(inputs)
```
#### Tokenizer
##### 在 purewords 中选择你的分词器
如果您更喜欢
用空格标记句子,您可以选择 `WhitespaceTokenizer` 标记器或默认 jieba 设置的 `JiebaTokenizer`。
否则,我们使用 yoctol jeiba tokenizer 作为我们的默认设置。
```python
from purewords.tokenizer import WhitespaceTokenizer
tokenizer = WhitespaceTokenizer()
pw = purewords.PureWords(
tokenizer=tokenizer
)
```
##### 在 JiebaTokenizer
中添加新词 您可以在 JiebaTokenizer 中添加新词来自定义您的分词器。
```python
from purewords.tokenizer import JiebaTokenizer
tokenizer = JiebaTokenizer()
tokenizer.add_word(new_word, freq, tag) # 设置同 jieba.add_word
tokenizer.add_words(new_word_list, freq, tag)
pw = purewords.PureWords(
tokenizer=tokenizer
)
```
#### 过滤器集合
你可以在 purewords 中自定义你的预处理方式。
* document_filters:在句子拆分之前预处理原始句子
* token_filters:在每个句子的标记化之后预处理标记
##### 组织您的过滤器
您可以通过在我们的过滤器集合类中添加过滤器来创建自定义过滤器。
过滤器是一个可调用对象,它接收原始句子并返回处理后的句子。
预处理顺序与过滤器的添加顺序一致。
```蟒蛇
从 purewords.filter_collection 导入 BaseFilterCollection
custom_filters = BaseFilterCollection()
custom_filters.add(filter_1)
custom_filters.add(filter_2)
...
custom_filters.add(filter_n)
pw = purewords.PureWords(
tokenizer=tokenizer,
document_filters=custom_filters,
)
```
####
停用词您可以在 `purewords/config/stopwords.txt` 中添加停用词。
### 命令行用法:从命令行
将文本文件预处理为单个清理文档。
用法:
####清理单个txt文件
```
python -m purewords input_file_path
```
#### 清理目录中的文本文件
或者,您可以使用以下命令清理目录中的所有 txt 文件。
```
python -m purewords -d your_raw_text_dir
```
#### 忽略短句
如果你喜欢长句,又想忽略少于5个单词的短句,可以试试这个。
```
python -m purewords -min 5 your_text_file
```
#### 剪长句
或者你喜欢30字以内的短句,想把长句剪成短句。
您可以像这样设置最大句子长度。
```
python -m purewords -max 30 your_text_file
```
#### 使用多线程加速
您还可以使用多头来加快清洁过程。
在以下示例中,您使用 4 个线程清理所有文本文件
```
python -m purewords -j 4 -d your_raw_text_dir
```
Purewords 是一个用于清理所有语言的原始文本的包。
## 安装
`pip install purewords`
## 用法
### 模块用法:
```python
import purewords
# raw sentence
inputs = "ha hi!!hello I\'m at http:www.google.com.tw\n \n"
+ "你知道yahoo吗?my_computer很棒。我的电话号码"
+ "是02-3366-5678。<br>的啦<br>我的密码:123-abc$99&^%Y)\'_\ '(Y "
```
#### 将输入视为一个句子并清理它。
单词标记用空格分隔
``python
# result: string
purewords.clean_sentence(inputs)
'哈哈,你好,我在 _url_ 你知道 yahoo 我的电脑很棒 我的电话号码是 _phone_ 我的密码 _num_ abc _num_ y y'
```
#### 将输入视为文档并清理它。
使用一些自信的拆分标记拆分文档,例如“。” 或者 '?'。
```python
# 结果:已清理字符串列表
purewords.clean_document(inputs)
['ha hi', 'hello i am at _url_', 'you know yahoo', 'my computer is great', '我的电话号码是 _phone_ ', '的我的密码_num_ abc _num_ y y']
```
### 自定义你的purewords
你可以在purewords 中使用不同的设置。
```python 从purewords.tokenizer导入purewords导入
YoctolTokenizer
from purewords.filter_collection import document_filters
from purewords.filter_collection import token_filters
tokenizer = YoctolTokenizer()
pw = purewords.PureWords(
tokenizer=tokenizer, # 选择你的tokenizer
document_filters=document_filters, # 选择你的文档过滤器
token_filters=token_filters, # 选择你的token过滤器
max_len =200, # 剪掉长度超过 max_len
min_len=1 的长句 #忽略短句
)
inputs = 'This is a sentence.'
pw.clean_sentence(inputs)
pw.clean_document(inputs)
```
#### Tokenizer
##### 在 purewords 中选择你的分词器
如果您更喜欢
用空格标记句子,您可以选择 `WhitespaceTokenizer` 标记器或默认 jieba 设置的 `JiebaTokenizer`。
否则,我们使用 yoctol jeiba tokenizer 作为我们的默认设置。
```python
from purewords.tokenizer import WhitespaceTokenizer
tokenizer = WhitespaceTokenizer()
pw = purewords.PureWords(
tokenizer=tokenizer
)
```
##### 在 JiebaTokenizer
中添加新词 您可以在 JiebaTokenizer 中添加新词来自定义您的分词器。
```python
from purewords.tokenizer import JiebaTokenizer
tokenizer = JiebaTokenizer()
tokenizer.add_word(new_word, freq, tag) # 设置同 jieba.add_word
tokenizer.add_words(new_word_list, freq, tag)
pw = purewords.PureWords(
tokenizer=tokenizer
)
```
#### 过滤器集合
你可以在 purewords 中自定义你的预处理方式。
* document_filters:在句子拆分之前预处理原始句子
* token_filters:在每个句子的标记化之后预处理标记
##### 组织您的过滤器
您可以通过在我们的过滤器集合类中添加过滤器来创建自定义过滤器。
过滤器是一个可调用对象,它接收原始句子并返回处理后的句子。
预处理顺序与过滤器的添加顺序一致。
```蟒蛇
从 purewords.filter_collection 导入 BaseFilterCollection
custom_filters = BaseFilterCollection()
custom_filters.add(filter_1)
custom_filters.add(filter_2)
...
custom_filters.add(filter_n)
pw = purewords.PureWords(
tokenizer=tokenizer,
document_filters=custom_filters,
)
```
####
停用词您可以在 `purewords/config/stopwords.txt` 中添加停用词。
### 命令行用法:从命令行
将文本文件预处理为单个清理文档。
用法:
####清理单个txt文件
```
python -m purewords input_file_path
```
#### 清理目录中的文本文件
或者,您可以使用以下命令清理目录中的所有 txt 文件。
```
python -m purewords -d your_raw_text_dir
```
#### 忽略短句
如果你喜欢长句,又想忽略少于5个单词的短句,可以试试这个。
```
python -m purewords -min 5 your_text_file
```
#### 剪长句
或者你喜欢30字以内的短句,想把长句剪成短句。
您可以像这样设置最大句子长度。
```
python -m purewords -max 30 your_text_file
```
#### 使用多线程加速
您还可以使用多头来加快清洁过程。
在以下示例中,您使用 4 个线程清理所有文本文件
```
python -m purewords -j 4 -d your_raw_text_dir
```
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
purewords-0.1.1.tar.gz
(3.0 MB
查看哈希)
内置发行版
purewords-0.1.1-py3.5.egg
(3.1 MB
查看哈希)
purewords-0.1.1-py3-none-any.whl
(3.1 MB
查看哈希)