これは、特定のルールに従ってテキストをトークン化し、トークンにラベルを付ける単純なスキャナーです。
- 不明な文字を処理し、不明としてラベル付けするための最良の方法は何ですか?
- 同様の結果を達成し、比較的単純なままで物事をスピードアップするための推奨される方法/ライブラリはありますか?
例:
import re
def alpha(scanner,token):
return token, 'a'
def numeric(scanner,token):
return token,'rn'
def punctuation(scanner,token):
return token, 'p'
def superscript(scanner,token):
return token, 'sn'
scanner = re.Scanner([
(u"[a-zA-Z]+", alpha),
(u"[.,:;!?]", punctuation),
(u"[0-9]+", numeric),
(u"[\xb9\u2070\xb3\xb2\u2075\u2074\u2077\u2076\u2079\u2078]", superscript),
(r"[\s\n]+", None), # whitespace, newline
])
tokens, _ = scanner.scan("This is a little test? With 7,9 and 6.")
print tokens
アウト:
[('This', 'a'), ('is', 'a'), ('a', 'a'), ('little', 'a'), ('test', 'a'),
('?', 'p'), ('With', 'a'), ('7', 'rn'), (',', 'p'), ('9', 'rn'),
('and', 'a'), ('6', 'rn'), ('.', 'p')]
ps!定義された関数は、おそらくトークンをさらに分類しようとします。