一个用rnns进行文本分析的小库。
passage的Python项目详细描述
一个用rnns进行文本分析的小库。
警告:非常紧急,正在进行中。
安装
通过Github(正在开发的版本)
git clone http://github.com/IndicoDataSolutions/passage.git python setup.py develop
或通过PIP
sudo pip install passage
示例
使用段落对文本进行二进制分类,此示例:
- 标记一些训练文本,将其转换为一个格式段落可以 使用。
- 将模型的结构定义为层列表。
- 使用该结构和要优化的成本创建模型。
- 在训练文本上训练一次迭代的模型。
- 使用模型和标记器预测新文本。
- 保存并加载模型。
from passage.preprocessing import Tokenizer from passage.layers import Embedding, GatedRecurrent, Dense from passage.models import RNN from passage.utils import save, load tokenizer = Tokenizer() train_tokens = tokenizer.fit_transform(train_text) layers = [ Embedding(size=128, n_features=tokenizer.n_features), GatedRecurrent(size=128), Dense(size=1, activation='sigmoid') ] model = RNN(layers=layers, cost='BinaryCrossEntropy') model.fit(train_tokens, train_labels) model.predict(tokenizer.transform(test_text)) save(model, 'save_test.pkl') model = load('save_test.pkl')
其中:
- train_text是字符串列表[“hello world”,“foo bar”]
- 列车标签是标签列表[0,1]
- test_text是另一个字符串列表
数据集
如果没有大量的数据集,RNN很难获得更好的结果 比传统的稀疏线性模型。下面是一些数据集 大小合适,对实验有用。希望这个名单 将随着时间的推移而增长,请随时为 通过问题或拉取请求包含。
**注意**:这些数据集不是由indico创建的,不是 是否在此处包含任何形式的背书
博客数据集:http://www.cs.biu.ac.il/~koppel/blogs/blogs.zip(年龄 性别数据)