Skip to main content

JpTokenPreprocessing 是用于令牌预处理的 Python 库。

项目描述

https://travis-ci.org/Kesin11/JpTokenPreprocessing.svg?branch=master

JpTokenPreprocessing – 日本令牌预处理

JpTokenPreprocessing 是一个用于令牌预处理的 Python 库。它支持过滤噪声(例如太短的token,只有数字或只有符号token)和规范化(支持字母大小写和unicode规范化)。自然语言处理 (NLP) 有常见的预处理。

用法

#coding: utf-8
# Python3
from jp_token_preprocessing import JpTokenPreprocessing
import MeCab

# Return japanese word tokens using morphological analyzer MeCab.
# And select only noun.
def tokenize(text):
    tagger = MeCab.Tagger()
    node = tagger.parseToNode(text)
    while node:
        if '名詞' in node.feature:
            surface = node.surface
            yield surface
        node = node.next

if __name__=='__main__':
    text = """
    これは自然言語処理に必須な前処理のためのモジュールです。
    形態素解析や、n-gramでトークン化した後のフィルタリング、正規化を補助します。
    一語だけのトークンや'1234'のような数字だけのトークン、'!!'のような記号だけのトークンのフィルタリング、
    全角文字'PYTHON'の半角化、英単語'Word'の小文字化といった正規化も行えます。
    さらに必ず除外したいトークンをストップワードに設定することもできます。
    """
    stopwords = ['これ', 'こと']

    tokens = tokenize(text)
    """
    >>> print(list(tokens))

    ['', '', '言語', '処理', '必須', '前', '処理', 'ため', 'モジュール', '形態素',
    '解析', 'n', '-', 'gram', 'トー', 'クン', '化', '後', 'フィルタ', 'リング', '正規',
    '化', '補助', '一語', 'トーク', 'ン', "'", '1234', "'", 'よう', '数字','トー',
    'クン', "'!!'", 'よう', '記号', 'トー', 'クン', 'フィルタ', 'リング', '全角',
    '文字', "'", 'PYTHON', "'", '半角', '化', '英単語', "'", 'Word',"'", '小文字',
    '化', '正規', '化', '除外', 'トーク', 'ン', 'ストップ', 'ワード', '設定', 'こと']
    """

    tokens = tokenize(text)
    preprocessor = JpTokenPreprocessing(number=False,
                                        symbol=False,
                                        case='lower',
                                        unicode='NFKC',
                                        min_len=2,
                                        stopwords=stopwords)
    tokens = preprocessor.preprocessing(tokens)
    # Return iterator of tokens. Using list() for print sample.
    """
    >>> print(list(tokens))
    ['言語', '処理', '必須', '処理', 'ため', 'モジュール', '形態素', '解析', 'gram',
    'トー', 'クン', 'フィルタ', 'リング', '正規', '補助', '一語', 'トーク', 'よう',
    '数字', 'トー', 'クン', 'よう', '記号', 'トー', 'クン', 'フィルタ', 'リング',
    '全角', '文字', 'python', '半角', '英単語', 'word', '小文字', '正規', '除外',
    'トーク', 'ストップ', 'ワード', '設定']
    """

安装

pip install JpTokenPreprocessing

用于 python3 的 MeCab

请申请以下补丁以通过 python3 安装和使用 MeCab 模块。(2014/09/07 MeCab 0.996)

https://code.google.com/p/mecab/issues/detail?id=7

方法

JpTokenPreprocessing(args)

  • number = BOOL(默认值:False)

    仅允许数字令牌。

  • 符号 = 布尔(默认值:假)

    仅允许符号令牌。

  • case = 'lower' 或 'upper' 或 'capitalize'

    规范化字母大小写。

  • unicode = 'NFC' 或 'NFKC' 或 'NFD' 或 'NFKD'a (默认值:'NFKC')

    使用 unicodedata.normalize() 规范化 unicode 字符串。

  • min_len = int(默认值:2)

    过滤掉几个字符标记。如果 min_len = 2 过滤掉只有 1 或 0 个字符的标记。

  • 停用词 = 列表(默认值:[])

    过滤掉包含在停用词列表中的任何标记。

  • JpTokenPreprocessing.preprocessing(可迭代)

    返回预处理的令牌迭代器。

未来的工作

  • 添加一些挂钩点以扩展自己的预处理。

作者

Kenta kase kesin1202000 @ gmail com

执照

麻省理工学院许可证

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

JpTokenPreprocessing-0.1.5a2.tar.gz (4.3 kB 查看哈希

已上传 source