fugashi-plus


Namefugashi-plus JSON
Version 1.5.2.post1 PyPI version JSON
download
home_pageNone
SummaryCython MeCab wrapper for fast, pythonic Japanese tokenization and morphological analysis with additional improvements.
upload_time2025-11-01 22:34:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # fugashi-plus

[![Current PyPI packages](https://badge.fury.io/py/fugashi-plus.svg)](https://pypi.org/project/fugashi-plus/)
![Test Status](https://github.com/tsukumijima/fugashi-plus/workflows/test-manylinux/badge.svg)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/fugashi-plus)](https://pypi.org/project/fugashi-plus/)
![Supported Platforms](https://img.shields.io/badge/platforms-linux%20macosx%20windows-blue)

fugashi-plus は、主に Windows 対応や MeCab の [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) への移行などコードのメンテナンスを目的とした、[fugashi](https://github.com/polm/fugashi) の派生ライブラリです。

## Changes in this fork

- **パッケージ名を `fugashi-plus` に変更**
  - ライブラリ名は `fugashi` から変更されておらず、[fugashi](https://github.com/polm/fugashi) 本家同様に `import fugashi` でインポートできる
  - [fugashi](https://github.com/polm/fugashi) 本家のドロップイン代替として利用できる
- **明示的に Python 3.13 をサポート対象に追加**
  - CI 対象の Python バージョンにも 3.13 を追加した
- **Cython を 3.0 系に更新**
  - https://github.com/cython/cython/issues/5982 の通り、Python 3.13 では一部の非推奨 C API が削除されている
  - Cython 0.x 系では Python 3.13 以降のビルドに失敗するため、Cython 3.0 系に更新した
- **Cython モジュールに型ヒント (Type Hints) を追加**
  - fugashi 本家には型ヒントが同梱されておらず、また fugashi はほぼ 100% Cython で書かれているため、Pylance などでのコード補完や型チェックが全く効かない
  - fugashi-plus では Cython モジュールに型ヒントを追加したことで、コード補完や型チェックが効くようになっている
- **MeCab を現在もメンテナンスが続けられている [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) に移行**
  - **オリジナルの Mecab ([taku910/mecab](https://github.com/taku910/mecab)) は、2020 年以降メンテナンスが放棄されている**
    - 大元の設計から Windows での使用を想定していないようで、Windows のサポートは不十分
    - fugashi 本家では Windows 向け wheel のみ Windows 向けの修正を施した [chezou/mecab](https://github.com/chezou/mecab) が使われているが、2018 年以降メンテナンスが放棄されている
  - **一方 [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) は現在でもメンテナンスが続けられており、Windows 64bit でも比較的容易にビルドできる**
    - ただし、Visual Studio 2022 (Build Tools v143) では非推奨の一部 C++ 標準ライブラリが削除されている関係で、ビルドに失敗する
    - このため、GitHub Actions のビルド環境では明示的に Build Tools v142 (Visual Studio 2019 相当) でビルドを行っている
  - **[ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) に移行することで、UniDic 2.3.0 以降でユーザー辞書のビルドに失敗する問題が修正される**
    - 参考資料:
      - https://github.com/taku910/mecab/issues/10
      - https://github.com/polm/fugashi/issues/75
      - https://ja.stackoverflow.com/a/74219/48588
      - https://zenn.dev/zagvym/articles/28056236903369
      - https://qiita.com/CookieBox26/items/a607d9e25f3b18d209ea
    - 結局 MeCab 側の実装ミスかそれとも UniDic の作成不備かは釈然としないが、UniDic 側の作成不備だとすると 3.1.0 や最新版でも修正されていないのは不可解
    - [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) ではこの問題を解決する https://github.com/taku910/mecab/pull/70 での修正内容が独自にマージされており、ユーザー辞書のビルドに失敗する問題が修正されている
    - 上記プルリクエストでの修正を取り込まない場合、巨大な UniDic を手元で再ビルドするか、値決め打ちで UniDic の辞書データのバイナリを書き換えるしかなくなり、どちらの方法も実運用上非常に問題がある
- **Windows 環境において、システム辞書・ユーザー辞書の保存先パス指定が正常に機能しない問題を修正**
  - fugashi 本家では `GenericTagger` クラス・`build_dictionary()` の両方で MeCab に渡す引数の分割に `shlex.split()` が使われていたが、shlex は Windows パスを正しく解釈しない
  - fugashi-plus では、Windows のみ shlex を使わず独自に引数解析を行うことで、ライブラリユーザー側でワークアラウンドを挟むことなく、正常にシステム辞書・ユーザー辞書の保存先パスを指定できるようにしている
- **`Tagger` クラスのコンストラクタで、`unidic` / `unidic-lite` パッケージのインストール有無に関わらず、引数に指定されたシステム辞書を利用するよう変更**
  - fugashi 本家では `unidic` / `unidic-lite` パッケージがインストール済みの環境だと、`Tagger` クラスのコンストラクタ引数 (`arg`) に独自にシステム辞書のパスを指定しても、常に `unidic` / `unidic-lite` パッケージ内蔵の UniDic が優先して利用されてしまっていた
  - fugashi-plus では、コンストラクタ引数 (`arg`) の文字列内に `-r` や `-d` オプションが含まれない場合にのみ、`unidic` / `unidic-lite` パッケージに内蔵の UniDic を検出するロジックに変更している
- **その他コードのクリーンアップなど**

## Installation

下記コマンドを実行して、ライブラリをインストールできます。

```bash
pip install fugashi-plus
```

下記のドキュメントは、[fugashi](https://github.com/polm/fugashi) 本家のドキュメントを改変なしでそのまま引き継いでいます。  
これらのドキュメントの内容が fugashi-plus にも通用するかは保証されません。

-------

[![Open in Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://fugashi.streamlit.app)
[![Current PyPI packages](https://badge.fury.io/py/fugashi.svg)](https://pypi.org/project/fugashi/)
![Test Status](https://github.com/polm/fugashi/workflows/test-manylinux/badge.svg)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/fugashi)](https://pypi.org/project/fugashi/)
![Supported Platforms](https://img.shields.io/badge/platforms-linux%20macosx%20windows-blue)

# fugashi

<img src="https://github.com/polm/fugashi/raw/main/fugashi.png" width=125 height=125 alt="fugashi by Irasutoya" />

fugashi is a Cython wrapper for [MeCab](https://taku910.github.io/mecab/), a
Japanese tokenizer and morphological analysis tool.  Wheels are provided for
Linux, OSX (Intel), and Win64, and UniDic is [easy to install](#installing-a-dictionary).

**issueを英語で書く必要はありません。**

Check out the [interactive demo][], see the [blog post](https://www.dampfkraft.com/nlp/fugashi.html) for background
on why fugashi exists and some of the design decisions, or see [this
guide][guide] for a basic introduction to Japanese tokenization.

[guide]: https://www.dampfkraft.com/nlp/how-to-tokenize-japanese.html
[interactive demo]: https://fugashi.streamlit.app

If you are on a platform for which wheels are not provided, you'll need to
install MeCab first. It's recommended you install [from
source](https://github.com/taku910/mecab). If you need to build from source on
Windows, [@chezou's fork](https://github.com/chezou/mecab) is recommended; see
[issue #44](https://github.com/polm/fugashi/issues/44#issuecomment-954426115)
for an explanation of the problems with the official repo.

Known platforms without wheels:

- musl-based distros like alpine [#77](https://github.com/polm/fugashi/issues/77)
- PowerPC
- Windows 32bit

## Usage

```python
from fugashi import Tagger

tagger = Tagger('-Owakati')
text = "麩菓子は、麩を主材料とした日本の菓子。"
tagger.parse(text)
# => '麩 菓子 は 、 麩 を 主材 料 と し た 日本 の 菓子 。'
for word in tagger(text):
    print(word, word.feature.lemma, word.pos, sep='\t')
    # "feature" is the Unidic feature data as a named tuple
```

## Installing a Dictionary

fugashi requires a dictionary. [UniDic](https://unidic.ninjal.ac.jp/) is
recommended, and two easy-to-install versions are provided.

  - [unidic-lite](https://github.com/polm/unidic-lite), a slightly modified version 2.1.2 of Unidic (from 2013) that's relatively small
  - [unidic](https://github.com/polm/unidic-py), the latest UniDic 3.1.0, which is 770MB on disk and requires a separate download step

If you just want to make sure things work you can start with `unidic-lite`, but
for more serious processing `unidic` is recommended. For production use you'll
generally want to generate your own dictionary too; for details see the [MeCab
documentation](https://taku910.github.io/mecab/learn.html).

To get either of these dictionaries, you can install them directly using `pip`
or do the below:

```sh
pip install 'fugashi[unidic-lite]'

# The full version of UniDic requires a separate download step
pip install 'fugashi[unidic]'
python -m unidic download
```

For more information on the different MeCab dictionaries available, see [this article](https://www.dampfkraft.com/nlp/japanese-tokenizer-dictionaries.html).

## Dictionary Use

fugashi is written with the assumption you'll use Unidic to process Japanese,
but it supports arbitrary dictionaries. 

If you're using a dictionary besides Unidic you can use the GenericTagger like this:

```python
from fugashi import GenericTagger
tagger = GenericTagger()

# parse can be used as normal
tagger.parse('something')
# features from the dictionary can be accessed by field numbers
for word in tagger(text):
    print(word.surface, word.feature[0])
```

You can also create a dictionary wrapper to get feature information as a named tuple. 

```python
from fugashi import GenericTagger, create_feature_wrapper
CustomFeatures = create_feature_wrapper('CustomFeatures', 'alpha beta gamma')
tagger = GenericTagger(wrapper=CustomFeatures)
for word in tagger.parseToNodeList(text):
    print(word.surface, word.feature.alpha)
```

## Citation

If you use fugashi in research, it would be appreciated if you cite this paper. You can read it at [the ACL Anthology](https://www.aclweb.org/anthology/2020.nlposs-1.7/) or [on Arxiv](https://arxiv.org/abs/2010.06858).

    @inproceedings{mccann-2020-fugashi,
        title = "fugashi, a Tool for Tokenizing {J}apanese in Python",
        author = "McCann, Paul",
        booktitle = "Proceedings of Second Workshop for NLP Open Source Software (NLP-OSS)",
        month = nov,
        year = "2020",
        address = "Online",
        publisher = "Association for Computational Linguistics",
        url = "https://www.aclweb.org/anthology/2020.nlposs-1.7",
        pages = "44--51",
        abstract = "Recent years have seen an increase in the number of large-scale multilingual NLP projects. However, even in such projects, languages with special processing requirements are often excluded. One such language is Japanese. Japanese is written without spaces, tokenization is non-trivial, and while high quality open source tokenizers exist they can be hard to use and lack English documentation. This paper introduces fugashi, a MeCab wrapper for Python, and gives an introduction to tokenizing Japanese.",
    }

## Alternatives

If you have a problem with fugashi feel free to open an issue. However, there
are some cases where it might be better to use a different library.

- If you don't want to deal with installing MeCab at all, try [SudachiPy](https://github.com/WorksApplications/sudachi.rs).
- If you need to work with Korean, try [pymecab-ko](https://github.com/NoUnique/pymecab-ko) or [KoNLPy](https://konlpy.org/en/latest/).

## License and Copyright Notice

fugashi is released under the terms of the [MIT license](./LICENSE). Please
copy it far and wide.

fugashi is a wrapper for MeCab, and fugashi wheels include MeCab binaries.
MeCab is copyrighted free software by Taku Kudo `<taku@chasen.org>` and Nippon
Telegraph and Telephone Corporation, and is redistributed under the [BSD
License](./LICENSE.mecab).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "fugashi-plus",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Paul O'Leary McCann <polm@dampfkraft.com>",
    "download_url": "https://files.pythonhosted.org/packages/2f/62/f0bf62b32b5f926258cf27af21b17ab34c3810cd7224b6c150c347d55370/fugashi_plus-1.5.2.post1.tar.gz",
    "platform": null,
    "description": "# fugashi-plus\r\n\r\n[![Current PyPI packages](https://badge.fury.io/py/fugashi-plus.svg)](https://pypi.org/project/fugashi-plus/)\r\n![Test Status](https://github.com/tsukumijima/fugashi-plus/workflows/test-manylinux/badge.svg)\r\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/fugashi-plus)](https://pypi.org/project/fugashi-plus/)\r\n![Supported Platforms](https://img.shields.io/badge/platforms-linux%20macosx%20windows-blue)\r\n\r\nfugashi-plus \u306f\u3001\u4e3b\u306b Windows \u5bfe\u5fdc\u3084 MeCab \u306e [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) \u3078\u306e\u79fb\u884c\u306a\u3069\u30b3\u30fc\u30c9\u306e\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3092\u76ee\u7684\u3068\u3057\u305f\u3001[fugashi](https://github.com/polm/fugashi) \u306e\u6d3e\u751f\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002\r\n\r\n## Changes in this fork\r\n\r\n- **\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u3092 `fugashi-plus` \u306b\u5909\u66f4**\r\n  - \u30e9\u30a4\u30d6\u30e9\u30ea\u540d\u306f `fugashi` \u304b\u3089\u5909\u66f4\u3055\u308c\u3066\u304a\u3089\u305a\u3001[fugashi](https://github.com/polm/fugashi) \u672c\u5bb6\u540c\u69d8\u306b `import fugashi` \u3067\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u308b\r\n  - [fugashi](https://github.com/polm/fugashi) \u672c\u5bb6\u306e\u30c9\u30ed\u30c3\u30d7\u30a4\u30f3\u4ee3\u66ff\u3068\u3057\u3066\u5229\u7528\u3067\u304d\u308b\r\n- **\u660e\u793a\u7684\u306b Python 3.13 \u3092\u30b5\u30dd\u30fc\u30c8\u5bfe\u8c61\u306b\u8ffd\u52a0**\r\n  - CI \u5bfe\u8c61\u306e Python \u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u3082 3.13 \u3092\u8ffd\u52a0\u3057\u305f\r\n- **Cython \u3092 3.0 \u7cfb\u306b\u66f4\u65b0**\r\n  - https://github.com/cython/cython/issues/5982 \u306e\u901a\u308a\u3001Python 3.13 \u3067\u306f\u4e00\u90e8\u306e\u975e\u63a8\u5968 C API \u304c\u524a\u9664\u3055\u308c\u3066\u3044\u308b\r\n  - Cython 0.x \u7cfb\u3067\u306f Python 3.13 \u4ee5\u964d\u306e\u30d3\u30eb\u30c9\u306b\u5931\u6557\u3059\u308b\u305f\u3081\u3001Cython 3.0 \u7cfb\u306b\u66f4\u65b0\u3057\u305f\r\n- **Cython \u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u578b\u30d2\u30f3\u30c8 (Type Hints) \u3092\u8ffd\u52a0**\r\n  - fugashi \u672c\u5bb6\u306b\u306f\u578b\u30d2\u30f3\u30c8\u304c\u540c\u68b1\u3055\u308c\u3066\u304a\u3089\u305a\u3001\u307e\u305f fugashi \u306f\u307b\u307c 100% Cython \u3067\u66f8\u304b\u308c\u3066\u3044\u308b\u305f\u3081\u3001Pylance \u306a\u3069\u3067\u306e\u30b3\u30fc\u30c9\u88dc\u5b8c\u3084\u578b\u30c1\u30a7\u30c3\u30af\u304c\u5168\u304f\u52b9\u304b\u306a\u3044\r\n  - fugashi-plus \u3067\u306f Cython \u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u578b\u30d2\u30f3\u30c8\u3092\u8ffd\u52a0\u3057\u305f\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u88dc\u5b8c\u3084\u578b\u30c1\u30a7\u30c3\u30af\u304c\u52b9\u304f\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\r\n- **MeCab \u3092\u73fe\u5728\u3082\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u304c\u7d9a\u3051\u3089\u308c\u3066\u3044\u308b [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) \u306b\u79fb\u884c**\r\n  - **\u30aa\u30ea\u30b8\u30ca\u30eb\u306e Mecab ([taku910/mecab](https://github.com/taku910/mecab)) \u306f\u30012020 \u5e74\u4ee5\u964d\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u304c\u653e\u68c4\u3055\u308c\u3066\u3044\u308b**\r\n    - \u5927\u5143\u306e\u8a2d\u8a08\u304b\u3089 Windows \u3067\u306e\u4f7f\u7528\u3092\u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u3088\u3046\u3067\u3001Windows \u306e\u30b5\u30dd\u30fc\u30c8\u306f\u4e0d\u5341\u5206\r\n    - fugashi \u672c\u5bb6\u3067\u306f Windows \u5411\u3051 wheel \u306e\u307f Windows \u5411\u3051\u306e\u4fee\u6b63\u3092\u65bd\u3057\u305f [chezou/mecab](https://github.com/chezou/mecab) \u304c\u4f7f\u308f\u308c\u3066\u3044\u308b\u304c\u30012018 \u5e74\u4ee5\u964d\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u304c\u653e\u68c4\u3055\u308c\u3066\u3044\u308b\r\n  - **\u4e00\u65b9 [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) \u306f\u73fe\u5728\u3067\u3082\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u304c\u7d9a\u3051\u3089\u308c\u3066\u304a\u308a\u3001Windows 64bit \u3067\u3082\u6bd4\u8f03\u7684\u5bb9\u6613\u306b\u30d3\u30eb\u30c9\u3067\u304d\u308b**\r\n    - \u305f\u3060\u3057\u3001Visual Studio 2022 (Build Tools v143) \u3067\u306f\u975e\u63a8\u5968\u306e\u4e00\u90e8 C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u524a\u9664\u3055\u308c\u3066\u3044\u308b\u95a2\u4fc2\u3067\u3001\u30d3\u30eb\u30c9\u306b\u5931\u6557\u3059\u308b\r\n    - \u3053\u306e\u305f\u3081\u3001GitHub Actions \u306e\u30d3\u30eb\u30c9\u74b0\u5883\u3067\u306f\u660e\u793a\u7684\u306b Build Tools v142 (Visual Studio 2019 \u76f8\u5f53) \u3067\u30d3\u30eb\u30c9\u3092\u884c\u3063\u3066\u3044\u308b\r\n  - **[ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) \u306b\u79fb\u884c\u3059\u308b\u3053\u3068\u3067\u3001UniDic 2.3.0 \u4ee5\u964d\u3067\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u306e\u30d3\u30eb\u30c9\u306b\u5931\u6557\u3059\u308b\u554f\u984c\u304c\u4fee\u6b63\u3055\u308c\u308b**\r\n    - \u53c2\u8003\u8cc7\u6599:\r\n      - https://github.com/taku910/mecab/issues/10\r\n      - https://github.com/polm/fugashi/issues/75\r\n      - https://ja.stackoverflow.com/a/74219/48588\r\n      - https://zenn.dev/zagvym/articles/28056236903369\r\n      - https://qiita.com/CookieBox26/items/a607d9e25f3b18d209ea\r\n    - \u7d50\u5c40 MeCab \u5074\u306e\u5b9f\u88c5\u30df\u30b9\u304b\u305d\u308c\u3068\u3082 UniDic \u306e\u4f5c\u6210\u4e0d\u5099\u304b\u306f\u91c8\u7136\u3068\u3057\u306a\u3044\u304c\u3001UniDic \u5074\u306e\u4f5c\u6210\u4e0d\u5099\u3060\u3068\u3059\u308b\u3068 3.1.0 \u3084\u6700\u65b0\u7248\u3067\u3082\u4fee\u6b63\u3055\u308c\u3066\u3044\u306a\u3044\u306e\u306f\u4e0d\u53ef\u89e3\r\n    - [ikegami-yukino/mecab](https://github.com/ikegami-yukino/mecab) \u3067\u306f\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b https://github.com/taku910/mecab/pull/70 \u3067\u306e\u4fee\u6b63\u5185\u5bb9\u304c\u72ec\u81ea\u306b\u30de\u30fc\u30b8\u3055\u308c\u3066\u304a\u308a\u3001\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u306e\u30d3\u30eb\u30c9\u306b\u5931\u6557\u3059\u308b\u554f\u984c\u304c\u4fee\u6b63\u3055\u308c\u3066\u3044\u308b\r\n    - \u4e0a\u8a18\u30d7\u30eb\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u306e\u4fee\u6b63\u3092\u53d6\u308a\u8fbc\u307e\u306a\u3044\u5834\u5408\u3001\u5de8\u5927\u306a UniDic \u3092\u624b\u5143\u3067\u518d\u30d3\u30eb\u30c9\u3059\u308b\u304b\u3001\u5024\u6c7a\u3081\u6253\u3061\u3067 UniDic \u306e\u8f9e\u66f8\u30c7\u30fc\u30bf\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u66f8\u304d\u63db\u3048\u308b\u3057\u304b\u306a\u304f\u306a\u308a\u3001\u3069\u3061\u3089\u306e\u65b9\u6cd5\u3082\u5b9f\u904b\u7528\u4e0a\u975e\u5e38\u306b\u554f\u984c\u304c\u3042\u308b\r\n- **Windows \u74b0\u5883\u306b\u304a\u3044\u3066\u3001\u30b7\u30b9\u30c6\u30e0\u8f9e\u66f8\u30fb\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u306e\u4fdd\u5b58\u5148\u30d1\u30b9\u6307\u5b9a\u304c\u6b63\u5e38\u306b\u6a5f\u80fd\u3057\u306a\u3044\u554f\u984c\u3092\u4fee\u6b63**\r\n  - fugashi \u672c\u5bb6\u3067\u306f `GenericTagger` \u30af\u30e9\u30b9\u30fb`build_dictionary()` \u306e\u4e21\u65b9\u3067 MeCab \u306b\u6e21\u3059\u5f15\u6570\u306e\u5206\u5272\u306b `shlex.split()` \u304c\u4f7f\u308f\u308c\u3066\u3044\u305f\u304c\u3001shlex \u306f Windows \u30d1\u30b9\u3092\u6b63\u3057\u304f\u89e3\u91c8\u3057\u306a\u3044\r\n  - fugashi-plus \u3067\u306f\u3001Windows \u306e\u307f shlex \u3092\u4f7f\u308f\u305a\u72ec\u81ea\u306b\u5f15\u6570\u89e3\u6790\u3092\u884c\u3046\u3053\u3068\u3067\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30e6\u30fc\u30b6\u30fc\u5074\u3067\u30ef\u30fc\u30af\u30a2\u30e9\u30a6\u30f3\u30c9\u3092\u631f\u3080\u3053\u3068\u306a\u304f\u3001\u6b63\u5e38\u306b\u30b7\u30b9\u30c6\u30e0\u8f9e\u66f8\u30fb\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u306e\u4fdd\u5b58\u5148\u30d1\u30b9\u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u308b\r\n- **`Tagger` \u30af\u30e9\u30b9\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u3001`unidic` / `unidic-lite` \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6709\u7121\u306b\u95a2\u308f\u3089\u305a\u3001\u5f15\u6570\u306b\u6307\u5b9a\u3055\u308c\u305f\u30b7\u30b9\u30c6\u30e0\u8f9e\u66f8\u3092\u5229\u7528\u3059\u308b\u3088\u3046\u5909\u66f4**\r\n  - fugashi \u672c\u5bb6\u3067\u306f `unidic` / `unidic-lite` \u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u306e\u74b0\u5883\u3060\u3068\u3001`Tagger` \u30af\u30e9\u30b9\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u5f15\u6570 (`arg`) \u306b\u72ec\u81ea\u306b\u30b7\u30b9\u30c6\u30e0\u8f9e\u66f8\u306e\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u3066\u3082\u3001\u5e38\u306b `unidic` / `unidic-lite` \u30d1\u30c3\u30b1\u30fc\u30b8\u5185\u8535\u306e UniDic \u304c\u512a\u5148\u3057\u3066\u5229\u7528\u3055\u308c\u3066\u3057\u307e\u3063\u3066\u3044\u305f\r\n  - fugashi-plus \u3067\u306f\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u5f15\u6570 (`arg`) \u306e\u6587\u5b57\u5217\u5185\u306b `-r` \u3084 `-d` \u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u542b\u307e\u308c\u306a\u3044\u5834\u5408\u306b\u306e\u307f\u3001`unidic` / `unidic-lite` \u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u5185\u8535\u306e UniDic \u3092\u691c\u51fa\u3059\u308b\u30ed\u30b8\u30c3\u30af\u306b\u5909\u66f4\u3057\u3066\u3044\u308b\r\n- **\u305d\u306e\u4ed6\u30b3\u30fc\u30c9\u306e\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\u306a\u3069**\r\n\r\n## Installation\r\n\r\n\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3059\u3002\r\n\r\n```bash\r\npip install fugashi-plus\r\n```\r\n\r\n\u4e0b\u8a18\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u3001[fugashi](https://github.com/polm/fugashi) \u672c\u5bb6\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u6539\u5909\u306a\u3057\u3067\u305d\u306e\u307e\u307e\u5f15\u304d\u7d99\u3044\u3067\u3044\u307e\u3059\u3002  \r\n\u3053\u308c\u3089\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u5185\u5bb9\u304c fugashi-plus \u306b\u3082\u901a\u7528\u3059\u308b\u304b\u306f\u4fdd\u8a3c\u3055\u308c\u307e\u305b\u3093\u3002\r\n\r\n-------\r\n\r\n[![Open in Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://fugashi.streamlit.app)\r\n[![Current PyPI packages](https://badge.fury.io/py/fugashi.svg)](https://pypi.org/project/fugashi/)\r\n![Test Status](https://github.com/polm/fugashi/workflows/test-manylinux/badge.svg)\r\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/fugashi)](https://pypi.org/project/fugashi/)\r\n![Supported Platforms](https://img.shields.io/badge/platforms-linux%20macosx%20windows-blue)\r\n\r\n# fugashi\r\n\r\n<img src=\"https://github.com/polm/fugashi/raw/main/fugashi.png\" width=125 height=125 alt=\"fugashi by Irasutoya\" />\r\n\r\nfugashi is a Cython wrapper for [MeCab](https://taku910.github.io/mecab/), a\r\nJapanese tokenizer and morphological analysis tool.  Wheels are provided for\r\nLinux, OSX (Intel), and Win64, and UniDic is [easy to install](#installing-a-dictionary).\r\n\r\n**issue\u3092\u82f1\u8a9e\u3067\u66f8\u304f\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002**\r\n\r\nCheck out the [interactive demo][], see the [blog post](https://www.dampfkraft.com/nlp/fugashi.html) for background\r\non why fugashi exists and some of the design decisions, or see [this\r\nguide][guide] for a basic introduction to Japanese tokenization.\r\n\r\n[guide]: https://www.dampfkraft.com/nlp/how-to-tokenize-japanese.html\r\n[interactive demo]: https://fugashi.streamlit.app\r\n\r\nIf you are on a platform for which wheels are not provided, you'll need to\r\ninstall MeCab first. It's recommended you install [from\r\nsource](https://github.com/taku910/mecab). If you need to build from source on\r\nWindows, [@chezou's fork](https://github.com/chezou/mecab) is recommended; see\r\n[issue #44](https://github.com/polm/fugashi/issues/44#issuecomment-954426115)\r\nfor an explanation of the problems with the official repo.\r\n\r\nKnown platforms without wheels:\r\n\r\n- musl-based distros like alpine [#77](https://github.com/polm/fugashi/issues/77)\r\n- PowerPC\r\n- Windows 32bit\r\n\r\n## Usage\r\n\r\n```python\r\nfrom fugashi import Tagger\r\n\r\ntagger = Tagger('-Owakati')\r\ntext = \"\u9ea9\u83d3\u5b50\u306f\u3001\u9ea9\u3092\u4e3b\u6750\u6599\u3068\u3057\u305f\u65e5\u672c\u306e\u83d3\u5b50\u3002\"\r\ntagger.parse(text)\r\n# => '\u9ea9 \u83d3\u5b50 \u306f \u3001 \u9ea9 \u3092 \u4e3b\u6750 \u6599 \u3068 \u3057 \u305f \u65e5\u672c \u306e \u83d3\u5b50 \u3002'\r\nfor word in tagger(text):\r\n    print(word, word.feature.lemma, word.pos, sep='\\t')\r\n    # \"feature\" is the Unidic feature data as a named tuple\r\n```\r\n\r\n## Installing a Dictionary\r\n\r\nfugashi requires a dictionary. [UniDic](https://unidic.ninjal.ac.jp/) is\r\nrecommended, and two easy-to-install versions are provided.\r\n\r\n  - [unidic-lite](https://github.com/polm/unidic-lite), a slightly modified version 2.1.2 of Unidic (from 2013) that's relatively small\r\n  - [unidic](https://github.com/polm/unidic-py), the latest UniDic 3.1.0, which is 770MB on disk and requires a separate download step\r\n\r\nIf you just want to make sure things work you can start with `unidic-lite`, but\r\nfor more serious processing `unidic` is recommended. For production use you'll\r\ngenerally want to generate your own dictionary too; for details see the [MeCab\r\ndocumentation](https://taku910.github.io/mecab/learn.html).\r\n\r\nTo get either of these dictionaries, you can install them directly using `pip`\r\nor do the below:\r\n\r\n```sh\r\npip install 'fugashi[unidic-lite]'\r\n\r\n# The full version of UniDic requires a separate download step\r\npip install 'fugashi[unidic]'\r\npython -m unidic download\r\n```\r\n\r\nFor more information on the different MeCab dictionaries available, see [this article](https://www.dampfkraft.com/nlp/japanese-tokenizer-dictionaries.html).\r\n\r\n## Dictionary Use\r\n\r\nfugashi is written with the assumption you'll use Unidic to process Japanese,\r\nbut it supports arbitrary dictionaries. \r\n\r\nIf you're using a dictionary besides Unidic you can use the GenericTagger like this:\r\n\r\n```python\r\nfrom fugashi import GenericTagger\r\ntagger = GenericTagger()\r\n\r\n# parse can be used as normal\r\ntagger.parse('something')\r\n# features from the dictionary can be accessed by field numbers\r\nfor word in tagger(text):\r\n    print(word.surface, word.feature[0])\r\n```\r\n\r\nYou can also create a dictionary wrapper to get feature information as a named tuple. \r\n\r\n```python\r\nfrom fugashi import GenericTagger, create_feature_wrapper\r\nCustomFeatures = create_feature_wrapper('CustomFeatures', 'alpha beta gamma')\r\ntagger = GenericTagger(wrapper=CustomFeatures)\r\nfor word in tagger.parseToNodeList(text):\r\n    print(word.surface, word.feature.alpha)\r\n```\r\n\r\n## Citation\r\n\r\nIf you use fugashi in research, it would be appreciated if you cite this paper. You can read it at [the ACL Anthology](https://www.aclweb.org/anthology/2020.nlposs-1.7/) or [on Arxiv](https://arxiv.org/abs/2010.06858).\r\n\r\n    @inproceedings{mccann-2020-fugashi,\r\n        title = \"fugashi, a Tool for Tokenizing {J}apanese in Python\",\r\n        author = \"McCann, Paul\",\r\n        booktitle = \"Proceedings of Second Workshop for NLP Open Source Software (NLP-OSS)\",\r\n        month = nov,\r\n        year = \"2020\",\r\n        address = \"Online\",\r\n        publisher = \"Association for Computational Linguistics\",\r\n        url = \"https://www.aclweb.org/anthology/2020.nlposs-1.7\",\r\n        pages = \"44--51\",\r\n        abstract = \"Recent years have seen an increase in the number of large-scale multilingual NLP projects. However, even in such projects, languages with special processing requirements are often excluded. One such language is Japanese. Japanese is written without spaces, tokenization is non-trivial, and while high quality open source tokenizers exist they can be hard to use and lack English documentation. This paper introduces fugashi, a MeCab wrapper for Python, and gives an introduction to tokenizing Japanese.\",\r\n    }\r\n\r\n## Alternatives\r\n\r\nIf you have a problem with fugashi feel free to open an issue. However, there\r\nare some cases where it might be better to use a different library.\r\n\r\n- If you don't want to deal with installing MeCab at all, try [SudachiPy](https://github.com/WorksApplications/sudachi.rs).\r\n- If you need to work with Korean, try [pymecab-ko](https://github.com/NoUnique/pymecab-ko) or [KoNLPy](https://konlpy.org/en/latest/).\r\n\r\n## License and Copyright Notice\r\n\r\nfugashi is released under the terms of the [MIT license](./LICENSE). Please\r\ncopy it far and wide.\r\n\r\nfugashi is a wrapper for MeCab, and fugashi wheels include MeCab binaries.\r\nMeCab is copyrighted free software by Taku Kudo `<taku@chasen.org>` and Nippon\r\nTelegraph and Telephone Corporation, and is redistributed under the [BSD\r\nLicense](./LICENSE.mecab).\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Cython MeCab wrapper for fast, pythonic Japanese tokenization and morphological analysis with additional improvements.",
    "version": "1.5.2.post1",
    "project_urls": {
        "funding": "https://github.com/sponsors/polm",
        "source": "https://github.com/tsukumijima/fugashi-plus"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1f61f09a27d4a38f9e7ea3ee849624f287a75950a5482f402fddfafc129ee969",
                "md5": "e44eea6b17d6199a22ca738a0c92ee91",
                "sha256": "6362b4605da7473a6aeacdde12104cc6b7f971b8c2b0a924bf0f6ad95d866a0c"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e44eea6b17d6199a22ca738a0c92ee91",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 731543,
            "upload_time": "2025-11-01T22:35:27",
            "upload_time_iso_8601": "2025-11-01T22:35:27.159195Z",
            "url": "https://files.pythonhosted.org/packages/1f/61/f09a27d4a38f9e7ea3ee849624f287a75950a5482f402fddfafc129ee969/fugashi_plus-1.5.2.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eae3f8177f84b9758f5a0bea6164a816118ff49e6d52410ae281317e1f9d5f81",
                "md5": "ec363ddaf3f523c7bb2516ed6d31b8b5",
                "sha256": "259085c466df009bdd1878babe33396565e722ed3698d54720a38e3d85b05a9f"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ec363ddaf3f523c7bb2516ed6d31b8b5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 545600,
            "upload_time": "2025-11-01T22:34:34",
            "upload_time_iso_8601": "2025-11-01T22:34:34.444407Z",
            "url": "https://files.pythonhosted.org/packages/ea/e3/f8177f84b9758f5a0bea6164a816118ff49e6d52410ae281317e1f9d5f81/fugashi_plus-1.5.2.post1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "37e2d35db6e47d7fd7903765090fa80d86df49d7840e1e94aef0b3e1f6316428",
                "md5": "827609344686601277862b8de926a8d3",
                "sha256": "5b513ee545a1791159358e5d3e1fe0ca70553efdcf42cec1b139f28515aee7b3"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "827609344686601277862b8de926a8d3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 754914,
            "upload_time": "2025-11-01T22:35:28",
            "upload_time_iso_8601": "2025-11-01T22:35:28.827606Z",
            "url": "https://files.pythonhosted.org/packages/37/e2/d35db6e47d7fd7903765090fa80d86df49d7840e1e94aef0b3e1f6316428/fugashi_plus-1.5.2.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "38ec581c5e79828d65a3726d9715a5ca1ff2997c78d64d04318033a58d58571e",
                "md5": "2165b7937fe9a82fc59cd666f2cab3db",
                "sha256": "842506d718430f14039b12313ad983d90df10119cd61d9665ba8dc8bbd21ba26"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2165b7937fe9a82fc59cd666f2cab3db",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 545518,
            "upload_time": "2025-11-01T22:34:41",
            "upload_time_iso_8601": "2025-11-01T22:34:41.680378Z",
            "url": "https://files.pythonhosted.org/packages/38/ec/581c5e79828d65a3726d9715a5ca1ff2997c78d64d04318033a58d58571e/fugashi_plus-1.5.2.post1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "414a4fca37e6b2c04008b19a323c5e7de6ffca9b9ee565705dbae582e86d0854",
                "md5": "79dd5e722de87bee0449711e71ecc823",
                "sha256": "b7f5d88743469eeb5d3e81227296b2d228f921c641a95980dba3dad68f541aa6"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "79dd5e722de87bee0449711e71ecc823",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 747486,
            "upload_time": "2025-11-01T22:35:29",
            "upload_time_iso_8601": "2025-11-01T22:35:29.895163Z",
            "url": "https://files.pythonhosted.org/packages/41/4a/4fca37e6b2c04008b19a323c5e7de6ffca9b9ee565705dbae582e86d0854/fugashi_plus-1.5.2.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b5c50f7ea389847cc2beb2c3cc6f6c6ac0e7b7e1feceb67344f8c481ad4429ff",
                "md5": "120a49e1577e84d37262792d05b96d80",
                "sha256": "784e782955108ca1a1a069fbd0449eab721cc498b437a0025adb4f1f19a1221b"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "120a49e1577e84d37262792d05b96d80",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 544574,
            "upload_time": "2025-11-01T22:34:31",
            "upload_time_iso_8601": "2025-11-01T22:34:31.117504Z",
            "url": "https://files.pythonhosted.org/packages/b5/c5/0f7ea389847cc2beb2c3cc6f6c6ac0e7b7e1feceb67344f8c481ad4429ff/fugashi_plus-1.5.2.post1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f604f454b960de129b74a6822c46c220277ea09821425340fffaad801d8b4604",
                "md5": "d5dfea2369bf6a60e07c42c6b35f5347",
                "sha256": "b377b90f66b811fcceda41a9c318443c4363508f0940c039857bb6feeec4ced5"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d5dfea2369bf6a60e07c42c6b35f5347",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 744186,
            "upload_time": "2025-11-01T22:35:31",
            "upload_time_iso_8601": "2025-11-01T22:35:31.326123Z",
            "url": "https://files.pythonhosted.org/packages/f6/04/f454b960de129b74a6822c46c220277ea09821425340fffaad801d8b4604/fugashi_plus-1.5.2.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d2fd217c59164f260b861aba71e8fe4e802d80a40f21f757cff71e33a31bc24",
                "md5": "461ce989050e353b7db3041b68f211b9",
                "sha256": "3dc6564a360b2fc0c9de5e425bd0b528a60113834cbb624123ae51457461deab"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "461ce989050e353b7db3041b68f211b9",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 544498,
            "upload_time": "2025-11-01T22:34:19",
            "upload_time_iso_8601": "2025-11-01T22:34:19.230042Z",
            "url": "https://files.pythonhosted.org/packages/1d/2f/d217c59164f260b861aba71e8fe4e802d80a40f21f757cff71e33a31bc24/fugashi_plus-1.5.2.post1-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4700d3717513e2571727adc495192125c8ea1b6f54e7f8226d4a6898e89ec533",
                "md5": "2f764d0eba1160979ace0acc5552eb9a",
                "sha256": "d4a09dd2c57855a3c82f7fd45b71dde7ce94e2ed55162df3a2fb7c5c3b9fe298"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2f764d0eba1160979ace0acc5552eb9a",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 738674,
            "upload_time": "2025-11-01T22:35:32",
            "upload_time_iso_8601": "2025-11-01T22:35:32.642491Z",
            "url": "https://files.pythonhosted.org/packages/47/00/d3717513e2571727adc495192125c8ea1b6f54e7f8226d4a6898e89ec533/fugashi_plus-1.5.2.post1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "58f1c82489b60419b5826f74142e418d601601fd48696ad6a1548c8e0f6b6661",
                "md5": "d8c5da9627c8454b0b4d02646e59d006",
                "sha256": "288a0173ccbdfa634a864ee59f23497a8b0506f687c64b51df2949a3f765c07a"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp314-cp314-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d8c5da9627c8454b0b4d02646e59d006",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 557398,
            "upload_time": "2025-11-01T22:36:22",
            "upload_time_iso_8601": "2025-11-01T22:36:22.277809Z",
            "url": "https://files.pythonhosted.org/packages/58/f1/c82489b60419b5826f74142e418d601601fd48696ad6a1548c8e0f6b6661/fugashi_plus-1.5.2.post1-cp314-cp314-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2bc8596f73377c774382884bf11d78ccb72c4dbd08658cd07a82cf482aaacaca",
                "md5": "f15ba50a0276255912f2cd29cb08539f",
                "sha256": "94d62075f8df5b81f9da9ef435dea4fd38f15cae2faca7a10156bf2d0d04a790"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f15ba50a0276255912f2cd29cb08539f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 729459,
            "upload_time": "2025-11-01T22:35:34",
            "upload_time_iso_8601": "2025-11-01T22:35:34.002728Z",
            "url": "https://files.pythonhosted.org/packages/2b/c8/596f73377c774382884bf11d78ccb72c4dbd08658cd07a82cf482aaacaca/fugashi_plus-1.5.2.post1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "265256532e28e7b9a7dfc9c9594b1aa8384f445e3fd776a4cb568d5761a4547c",
                "md5": "f8602888c76b833e360473663df02319",
                "sha256": "ee1845a52c2a9a1934b86c7e8b2253f2bc7dd6bebfff3b3a016c2e3c7d2f6c15"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f8602888c76b833e360473663df02319",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 546514,
            "upload_time": "2025-11-01T22:34:40",
            "upload_time_iso_8601": "2025-11-01T22:34:40.571251Z",
            "url": "https://files.pythonhosted.org/packages/26/52/56532e28e7b9a7dfc9c9594b1aa8384f445e3fd776a4cb568d5761a4547c/fugashi_plus-1.5.2.post1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2f62f0bf62b32b5f926258cf27af21b17ab34c3810cd7224b6c150c347d55370",
                "md5": "3e93a496f3974db6ec957c2ef312cdfe",
                "sha256": "8500d717253d5777589c4a99a2369993bd2c8fd35d3f8d40563e6251bc579d5f"
            },
            "downloads": -1,
            "filename": "fugashi_plus-1.5.2.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "3e93a496f3974db6ec957c2ef312cdfe",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 346446,
            "upload_time": "2025-11-01T22:34:37",
            "upload_time_iso_8601": "2025-11-01T22:34:37.554530Z",
            "url": "https://files.pythonhosted.org/packages/2f/62/f0bf62b32b5f926258cf27af21b17ab34c3810cd7224b6c150c347d55370/fugashi_plus-1.5.2.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-01 22:34:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sponsors",
    "github_project": "polm",
    "github_not_found": true,
    "lcname": "fugashi-plus"
}
        
Elapsed time: 0.82467s