node.js 12中的icu令牌生成器

问题描述 投票:0回答:1

我有一个适用于Python3的ICU令牌生成器。Thispython代码使用icu(PyICU)库中的BreakIteratorLocale

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'

seemsNan支持和Node12.x相关。如何正确正确地移植到Node12并摆脱V8弃用?

node.js v8 icu
1个回答
0
投票
也就是说,如果您使用--harmony-intl-segmenter运行Node 12,则可以访问V8的JavaScript Intl.Segmenter提案(https://github.com/tc39/proposal-intl-segmenter)的完整实现(但默认情况下尚未交付),该提案也基于ICU 。这可能会节省您大量的工作,

和正在成为JavaScript的正式组成部分,因此它将很快被广泛使用。

© www.soinside.com 2019 - 2024. All rights reserved.