项目介绍
Nagisa 是一个用于日语分词和词性标注的 Python 模块。它的设计目标是成为一个简单易用的工具,适合各种用户使用。
核心特性
Nagisa 的核心架构基于循环神经网络。它的分词模型利用字符和词汇层面的特征,而词性标注模型则使用标注词典的信息。这让 Nagisa 能够在处理复杂日语文本时表现出色。
安装指南
若要使用 Nagisa,用户需要在 Linux 系统中拥有 Python 3.6 至 3.12 版本,或在 macOS(Intel 或 M1/M2)中拥有 Python 3.9 至 3.12 版本。Windows 用户则需运行 64 位的 Python 3.6、3.7 或 3.8 版本。用户可以通过以下命令安装 Nagisa:
pip install nagisa
此外,Nagisa 也支持 Windows 的 Linux 子系统(WSL)。
基本使用
Nagisa 提供了简单的接口供用户分词和标注词性。以下是一个使用示例:
import nagisa
text = 'Pythonで簡単に使えるツールです'
words = nagisa.tagging(text)
print(words)
# 输出: Python/名詞 で/助詞 簡単/形状詞 に/助動詞 使える/動詞 ツール/名詞 です/助動詞
# 获取词列表
print(words.words)
# 输出: ['Python', 'で', '簡単', 'に', '使える', 'ツール', 'です']
# 获取词性列表
print(words.postags)
# 输出: ['名詞', '助詞', '形状詞', '助動詞', '動詞', '名詞', '助動詞']
后处理功能
Nagisa 还提供了根据特定词性过滤和提取词汇的功能,例如:
# 根据特定词性过滤词汇
words = nagisa.filter(text, filter_postags=['助詞', '助動詞'])
print(words)
# 输出: Python/名詞 簡単/形状詞 使える/動詞 ツール/名詞
# 仅提取名词
words = nagisa.extract(text, extract_postags=['名詞'])
print(words)
# 输出: Python/名詞 ツール/名詞
用户词典
Nagisa 允许用户轻松添加用户词典,以便更好地处理特定词汇:
# 默认输出
text = "3月に見た「3月のライオン」"
print(nagisa.tagging(text))
# 输出: 3/名詞 月/名詞 に/助詞 見/動詞 た/助動詞 「/補助記号 3/名詞 月/名詞 の/助詞 ライオン/名詞 」/補助記号
# 自定义词典识别整体词汇
new_tagger = nagisa.Tagger(single_word_list=['3月のライオン'])
print(new_tagger.tagging(text))
# 输出: 3/名詞 月/名詞 に/助詞 見/動詞 た/助動詞 「/補助記号 3月のライオン/名詞 」/補助記号
模型训练
Nagisa(v0.2.0+)提供了简单的训练方法,便于用户进行联合分词和序列标注(例如词性标注、实体识别)的模型训练。训练、开发和测试文件的格式为 tsv。以下是训练文件的示例:
唯一 NOUN
の ADP
趣味 NOUN
は ADP
料理 NOUN
EOS
# 完成训练后,保存三个模型文件(*.vocabs, *.params, *.hp)。
nagisa.fit(train_file="sample.train", dev_file="sample.dev", test_file="sample.test", model_name="sample")
# 通过加载训练的模型文件构建标注器。
sample_tagger = nagisa.Tagger(vocabs='sample.vocabs', params='sample.params', hp='sample.hp')
text = "福岡・博多の観光情報"
words = sample_tagger.tagging(text)
print(words)
# 输出: 福岡/PROPN ・/SYM 博多/PROPN の/ADP 観光/NOUN 情報/NOUN
通过以上介绍,Nagisa 提供了灵活且强大的功能,能够满足用户在日语文本处理中的多种需求。