【发布时间】:2017-01-01 20:51:02
【问题描述】:
我正在尝试使用 RegexpTokenizer 标记文本。
代码:
from nltk.tokenize import RegexpTokenizer
#from nltk.tokenize import word_tokenize
line = "U.S.A Count U.S.A. Sec.of U.S. Name:Dr.John Doe J.Doe 1.11 1,000 10--20 10-20"
pattern = '[\d|\.|\,]+|[A-Z][\.|A-Z]+\b[\.]*|[\w]+|\S'
tokenizer = RegexpTokenizer(pattern)
print tokenizer.tokenize(line)
#print word_tokenize(line)
输出:
['U', '.', 'S', '.', 'A', 'Count', 'U', '.', 'S', '.', 'A', '. ', 'Sec', '.', 'of', 'U', '.', 'S', '.', 'Name', ':', 'Dr', '.', 'John', 'Doe'、'J'、'.'、'Doe'、'1.11'、'1,000'、'10'、'-'、'-'、'20'、'10'、'-'、'20 ']
预期输出:
['USA', 'Count', 'USA', 'Sec', '.', 'of', 'US', 'Name', ':', 'Dr', '.', ' John'、'Doe'、'J.'、'Doe'、'1.11'、'1,000'、'10'、'-'、'-'、'20'、'10'、'-'、'20 ']
为什么分词器也会拆分我预期的令牌“U.S.A”、“U.S.”? 我该如何解决这个问题?
我的正则表达式:https://regex101.com/r/dS1jW9/1
【问题讨论】:
标签: python regex nlp nltk tokenize