我有一个适用于Python3的ICU令牌生成器。Thispython代码使用icu(PyICU)库中的BreakIterator
和Locale
:
from icu import Locale,BreakIterator
def wordSegmenter(txt, iter):
tokens = []
bi.setText(txt)
start = iter.first()
try:
while True:
end = next(iter)
tokens.append(txt[start:end])
start = end
except StopIteration:
pass
return tokens
text = u'退屈であくびばっかしていた毎日'
tokens = wordSegmenter(text, wordBreakIterator("ja"))
['退屈', 'で', 'あくび', 'ばっか', 'し', 'てい', 'た', '毎日']
我现在必须通过node-gyp绑定将ICU移植到NodeJS。构建本机库here时出现错误
../src/wordsplit.cc:82:65: error: too few arguments to function call, single argument 'context' was
not specified
Nan::New<FunctionTemplate>(SplitWords)->GetFunction());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:5995:3: note: 'GetFunction'
seems与Nan
支持和Node12.x
相关。如何正确正确地移植到Node12并摆脱V8弃用?
--harmony-intl-segmenter
运行Node 12,则可以访问V8的JavaScript Intl.Segmenter
提案(https://github.com/tc39/proposal-intl-segmenter)的完整实现(但默认情况下尚未交付),该提案也基于ICU 。这可能会节省您大量的工作,和正在成为JavaScript的正式组成部分,因此它将很快被广泛使用。