Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
This is a Python wrapper for the MeCab morphological analyzer for Japanese text. It currently works with Python 3.8 and greater.
Note: If using MacOS Big Sur, you'll need to upgrade pip to version 20.3 or higher to use wheels due to a pip issue.
issueを英語で書く必要はありません。
Note that Windows wheels require a Microsoft Visual C++ Redistributable, so be sure to install that.
>>> import MeCab
>>> wakati = MeCab.Tagger("-Owakati")
>>> wakati.parse("pythonが大好きです").split()
['python', 'が', '大好き', 'です']
>>> tagger = MeCab.Tagger()
>>> print(tagger.parse("pythonが大好きです"))
python python python python 名詞-普通名詞-一般
が ガ ガ が 助詞-格助詞
大好き ダイスキ ダイスキ 大好き 形状詞-一般
です デス デス です 助動詞 助動詞-デス 終止形-一般
EOS
The API for mecab-python3
closely follows the API for MeCab itself,
even when this makes it not very “Pythonic.” Please consult the official MeCab
documentation for more information.
Binary wheels are available for MacOS X, Linux, and Windows (64bit) are
installed by default when you use pip
:
pip install mecab-python3
These wheels include a copy of the MeCab library, but not a dictionary. In
order to use MeCab you'll need to install a dictionary. unidic-lite
is a good
one to start with:
pip install unidic-lite
To build from source using pip,
pip install --no-binary :all: mecab-python3
In order to use MeCab, you must install a dictionary. There are many different dictionaries available for MeCab. These UniDic packages, which include slight modifications for ease of use, are recommended:
The dictionaries below are not recommended due to being unmaintained for many years, but they are available for use with legacy applications.
For more details on the differences between dictionaries see here.
If you get a RuntimeError
when you try to run MeCab, here are some things to check:
You have to install this to use this package on Windows.
Run pip install unidic-lite
and confirm that works. If that fixes your
problem, you either don't have a dictionary installed, or you need to specify
your dictionary path like this:
tagger = MeCab.Tagger('-r /dev/null -d /usr/local/lib/mecab/dic/mydic')
Note: on Windows, use nul
instead of /dev/null
. Alternately, if you have a
mecabrc
you can use the path after -r
.
If you get this error:
error message: [ifs] no such file or directory: /usr/local/etc/mecabrc
You need to specify a mecabrc
file. It's OK to specify an empty file, it just
has to exist. You can specify a mecabrc
with -r
. This may be necessary on
Debian or Ubuntu, where the mecabrc
is in /etc/mecabrc
.
You can specify an empty mecabrc
like this:
tagger = MeCab.Tagger('-r/dev/null -d/home/hoge/mydic')
-Ochasen
Chasen output is not a built-in feature of MeCab, you must specify it in your
dicrc
or mecabrc
. Notably, Unidic does not include Chasen output format.
Please see the MeCab documentation.
Like MeCab itself, mecab-python3
is copyrighted free software by
Taku Kudo taku@chasen.org and Nippon Telegraph and Telephone Corporation,
and is distributed under a 3-clause BSD license (see the file BSD
).
Alternatively, it may be redistributed under the terms of the
GNU General Public License, version 2 (see the file GPL
) or the
GNU Lesser General Public License, version 2.1 (see the file LGPL
).
FAQs
Python wrapper for the MeCab morphological analyzer for Japanese
We found that mecab-python3 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.