标签: tokenize

使用nltk标记unicode

我有使用utf-8编码的文本文件,其中包含'ö','ü'等字符.我想解析这些文件的文本形式,但我无法让tokenizer正常工作.如果我使用标准的nltk标记器:

f = open('C:\Python26\text.txt', 'r') # text = 'müsli pöök rääk'
text = f.read()
f.close
items = text.decode('utf8')
a = nltk.word_tokenize(items)
Run Code Online (Sandbox Code Playgroud)

输出: [u'\ufeff', u'm', u'\xfc', u'sli', u'p', u'\xf6', u'\xf6', u'k', u'r', u'\xe4', u'\xe4', u'k']

Punkt tokenizer似乎做得更好:

f = open('C:\Python26\text.txt', 'r') # text = 'müsli pöök rääk'
text = f.read()
f.close
items = text.decode('utf8')
a = PunktWordTokenizer().tokenize(items)
Run Code Online (Sandbox Code Playgroud)

输出: [u'\ufeffm\xfcsli', u'p\xf6\xf6k', u'r\xe4\xe4k']

在我无法弄清楚的第一个令牌之前仍然有'\ ufeff'(不是我不能删除它).我究竟做错了什么?非常感谢.

python unicode tokenize nltk

18
推荐指数
2
解决办法
2万
查看次数

如何在Node.js中解析/标记化SQL语句

我正在寻找一种在Node.js应用程序中解析/标记SQL语句的方法,以便:

  • ISO/IEC 9075标准或此处定义的所有"基础"SQL关键字进行标记.
  • 验证SQL语法.
  • 找出查询将要做什么(例如读或写?).

你有任何解决方案或建议偷看?

链接:任何Javascript/Jquery库验证SQL语句?


我做过研究,发现了一些方法:

使用现有的node.js库

我进行了谷歌搜索,但没有找到一个可以使用的自愿和流行的图书馆.我找到了那些:

不幸的是,这些库中没有一个是完整和可靠的.

基于node.js低级标记化库自己完成

我可以使用低级标记器库来完成自己的工作,例如:

基于现有的Javascript代码美化自己做

CodeMirror是一个非常酷的Javascript库(浏览器端),可以识别SQL关键字,字符串等.检查演示.

我可以基于CodeMirror构建一个node.js库标记器.在SQL模式是这里github上,我也许可以适应它到节点的应用程序中获得令牌.

PS:CodeMirrorgithub上有5,046颗星,维护得很好.


我发现存在2个不同的问题:标记化和语法验证(与标记化有关).

我根据优秀的CodeMirrorSQL模式(github上的5,046颗星,维护得很好)使自己成为Node.js 的SQL标记 …

sql parsing tokenize node.js sql-parser

18
推荐指数
1
解决办法
1万
查看次数

Tokenizer与令牌过滤器

我正在尝试使用Elasticsearch实现自动完成,因为我知道如何做到这一点......

我正在尝试使用ES的edge_n_grams构建多字(短语)建议,同时索引已爬网数据.

a tokenizer和a 之间有什么区别token_filter- 我已经阅读了这些文档,但仍然需要对它们有更多的了解......

例如,一个token_filter ES用来搜索用户输入?是一个令牌化器,ES用来制作令牌吗?什么是令牌?

ES可以使用这些东西创建多字建议吗?

token tokenize elasticsearch

18
推荐指数
2
解决办法
4614
查看次数

tokenize一个字符串,保留Python中的分隔符

str.split在Python中是否有任何等效的返回分隔符?

我需要在处理一些令牌后保留输出的空白布局.

例:

>>> s="\tthis is an  example"
>>> print s.split()
['this', 'is', 'an', 'example']

>>> print what_I_want(s)
['\t', 'this', ' ', 'is', ' ', 'an', '  ', 'example']
Run Code Online (Sandbox Code Playgroud)

谢谢!

python string split tokenize

17
推荐指数
2
解决办法
2万
查看次数

用于全文的Tokenizer

这应该是不重新发明轮子的理想情况,但到目前为止,我的搜索一直是徒劳的.

我不想自己写一个,而是想使用现有的C++标记器.令牌将用于全文搜索的索引中.性能非常重要,我将解析许多千兆字节的文本.

编辑:请注意,令牌将用于搜索索引.创建这样的令牌并不是一门精确的科学(afaik),需要一些启发式方法.这已经做了一千次,可能有千种不同的方式,但我甚至找不到其中一个:)

有什么好的指针吗?

谢谢!

c++ full-text-search tokenize

17
推荐指数
2
解决办法
3684
查看次数

在单词之间没有空格的语言中断(例如亚洲语)?

我想用日文和中文文本以及任何其他语言进行MySQL全文搜索工作.问题是这些语言和其他语言通常不会在单词之间留有空格.如果必须键入与文本中相同的句子,则搜索无用.

我不能只在每个角色之间放一个空格,因为英语也必须起作用.我想用PHP或MySQL解决这个问题.

我可以配置MySQL来识别应该是自己的索引单元的字符吗?是否有一个PHP模块可以识别这些字符,所以我可以在它们周围为索引抛出空格?

更新

部分解决方案:

$string_with_spaces =
  preg_replace( "/[".json_decode('"\u4e00"')."-".json_decode('"\uface"')."]/",
  " $0 ", $string_without_spaces );
Run Code Online (Sandbox Code Playgroud)

这使得一个角色类至少出现在我需要特别处理的一些角色中.我应该提一下,搞定索引文本是可以接受的.

有没有人知道我需要插入空格的所有字符范围?

此外,必须有一种更好的,可移植的方式来表示PHP中的这些字符?Literal Unicode中的源代码并不理想; 我不会认出所有人物; 它们可能无法在我必须使用的所有机器上渲染.

php full-text-search tokenize cjk wordbreaker

16
推荐指数
1
解决办法
4691
查看次数

Solr中StandardTokenizerFactory和KeywordTokenizerFactory之间的区别?

我是Solr的新手.我想知道何时使用StandardTokenizerFactoryKeywordTokenizerFactory

我阅读了Apache Wiki上的文档,但我没有得到它.

任何人都可以解释StandardTokenizerFactory和KeywordTokenizerFactory之间区别吗?

java solr tokenize solrnet

16
推荐指数
1
解决办法
1万
查看次数

TRANSFORMERS:要求填充,但标记器没有填充标记

尝试使用相同的数据集顺序评估多个 Transformer 模型,以检查哪个模型表现更好。

型号列表是这样的:

MODELS = [
      ('xlm-mlm-enfr-1024'   ,"XLMModel"),
      ('distilbert-base-cased', "DistilBertModel"),
      ('bert-base-uncased'     ,"BertModel"),
      ('roberta-base'        ,"RobertaModel"),
      ("cardiffnlp/twitter-roberta-base-sentiment","RobertaSentTW"),
      ('xlnet-base-cased'     ,"XLNetModel"),
      #('ctrl'                ,"CTRLModel"),
      ('transfo-xl-wt103'    ,"TransfoXLModel"),
      ('bert-base-cased'       ,"BertModelUncased"),
      ('xlm-roberta-base'     ,"XLMRobertaModel"),
      ('openai-gpt'           ,"OpenAIGPTModel"),
      ('gpt2'                 ,"GPT2Model")
Run Code Online (Sandbox Code Playgroud)

所有这些都工作正常'ctrl',直到模型返回此错误:

Asking to pad, but the tokenizer does not have a padding token. Please select a token to use as 'pad_token' '(tokenizer.pad_token = tokenizer.eos_token e.g.)' or add a new pad token via 'tokenizer.add_special_tokens({'pad_token': '[PAD]'})'.

对我的数据集的句子进行标记时。

标记化代码是

SEQ_LEN = MAX_LEN #(50)

for pretrained_weights, model_name in MODELS:

print("***************** INICIANDO " …
Run Code Online (Sandbox Code Playgroud)

python tokenize tensorflow pytorch huggingface-transformers

16
推荐指数
2
解决办法
3万
查看次数

Int tokenizer

我知道有字符串标记符,但是有"int tokenizer"吗?

例如,我想拆分字符串"12 34 46"并具有:

列表[0] = 12

列表[1] = 34

列表[2] = 46

特别是,我想知道Boost :: Tokenizer是否这样做.虽然我找不到任何不使用字符串的示例.

c++ tokenize

15
推荐指数
2
解决办法
3029
查看次数

为什么n +++ n有效而n ++++ n不是?

在Java中,表达式:

n+++n
Run Code Online (Sandbox Code Playgroud)

似乎评估为等同于:

n++ + n
Run Code Online (Sandbox Code Playgroud)

尽管这+n是一个有效的一元运算符,其优先级高于算术运算+n + n.因此编译器似乎假设运算符不能是一元运算符并解析表达式.

但是,表达式:

n++++n
Run Code Online (Sandbox Code Playgroud)

不编译,即使有一个有效的可能性,它可以解决为:

n++ + +n
Run Code Online (Sandbox Code Playgroud)

++n并且+n被指定为具有相同的优先级,那么为什么编译器会解决看似模糊的问题而不n+++n支持算术,+但是不会这样做n++++n

java syntax tokenize

15
推荐指数
1
解决办法
462
查看次数