一个与 scikit 兼容的文本转换器库,可随时集成到 NLP 管道中以用于各种分类任务。
项目描述
NLPkit - 用于文本分类的转换器
一个与 scikit 兼容的文本转换器库,可随时集成到 NLP 管道中以用于各种分类任务。
项目结构
.
├── nlpkit
│ ├── __init__.py
│ └── nlp_feature_extraction
│ ├── __init__.py
│ ├── liwc
│ ├── word_embeddings_features.py
│ ├── syntax_features.py
│ ├── ner_features.py
│ ├── pos_features.py
│ ├── liwc_features.py
│ ├── text_statistics_features.py
│ └── tests
│ ├── __init__.py
│ ├── test_data
│ ├── test_liwc_feature_extraction.py
│ ├── test_ner_feature_extraction.py
│ ├── test_pos_feature_extraction.py
│ ├── test_syntax_feature_extraction.py
│ └── test_word_embeddings_feature_extraction.py
├── examples
├── README.md
├── LICENCE
├── requirements.txt
└── setup.py
入门
这些说明将使您在本地计算机上启动并运行该项目的副本。
先决条件
- 蟒蛇 3.6
- 斯坦福 CoreNLP 服务器(用于某些转换器)
- w2v 转换器的预训练词向量
带有 Docker 的斯坦福 CoreNLP 服务器
选区解析、POS 和 NER 标记需要斯坦福 CoreNLP。
让 CoreNLP 服务器运行最简单的方法是使用 Docker。您可以找到 Dockerfile 和说明,让服务器在Stanford CoreNLP Server - Docker上运行。
词向量
如果您不想训练自己的词嵌入,可以从Stanford GloVe 项目下载预训练的词向量。例如,维基百科模型有 40 万个单词的词汇表,使用 300 维向量表示。词向量采用 GloVe 格式,需要转换为 word2vec 格式。虽然格式几乎相同,但您可以使用 gensim 进行转换。
python -m gensim.scripts.glove2word2vec -i glove.txt -o word2vec.txt
变压器清单
- POSTagPreprocessor:通过以 word_TAG_ 的形式标记每个单词来预处理文本文档,例如 what_WP。可用于生成 POS 标记的 n-gram
- NERPreprocessor:通过用通用标签替换命名实体来预处理文本文档,例如 PERSON、LOCATION
- WordEmbedsDocVectorizer:将文本文档转换为基于 word2vec 的文档向量表示。它将文档的单词映射到 word2vec 向量,并跨维度对它们进行平均以生成文档向量表示
- POSExtractor:提取文本文档集合的词性 (POS) 计数
- CFGExtractor:提取文本文档集合中的上下文无关语法 (CFG) 产生规则
- NamedEntitiesCounter:为文本文档集合提取每个实体类型(例如 PERSON)的命名实体计数
- LIWCExtractor:提取属于文本文档集合的各种 LIWC 类别的单词比例
- TextStatsExtractor:计算文本文档集合的各种文本统计信息和可读性分数
用法
所有自定义转换器都扩展了 BaseEstimator 和 TransformerMixin 并实现了 fit 和 transform 方法。
# POSExtractor
sf_parser = CoreNLPParser(url='http://localhost:9000/', tagtype='pos')
pos_extractor = POSExtractor(sf_parser)
X = pos_extractor.fit_transform(corpus)
它们也可以用于管道,例如
pipeline = Pipeline([
('pre', TextPreprocessor(stemming=False)),
('w2v', WordEmbedsDocVectorizer(self._word2vec, tfidf_weights=True)),
('clf', SVC(kernel='linear', C=1, probability=True))
])
有关更多信息,您可以运行示例文件夹中包含的示例。
测试
Pytest 框架用于单元测试。该项目中生成的所有自定义文本转换器都带有大量的单元测试。要运行测试,请使用:
pytest src
项目存储库
https://github.com/evanll/nlpkit-ml
作者
由 Evan Lalopoulos 撰写,evan.lalopoulos.2017@ my.bristol.ac.uk作为他使用 NLP 检测假新闻的论文的一部分。
埃文·拉洛普洛斯-埃文尔
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
nlpkit-ml-1.0.0.tar.gz
(14.6 kB
查看哈希)
内置分布
nlpkit_ml-1.0.0-py3-none-any.whl
(36.3 kB
查看哈希)