标签: tokenize

令牌化模块中的Python 2换行标记

tokenize在Python中使用该模块,并想知道为什么有2个不同的换行符号:

NEWLINE = 4
NL = 54
Run Code Online (Sandbox Code Playgroud)

任何产生两个令牌的代码示例都将受到赞赏.

python tokenize

7
推荐指数
1
解决办法
809
查看次数

从nltk word_tokenize获取原始文本的索引

我正在使用nltk.word_tokenize对文本进行标记,我还希望将原始原始文本中的索引转换为每个标记的第一个字符,即

import nltk
x = 'hello world'
tokens = nltk.word_tokenize(x)
>>> ['hello', 'world']
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到[0, 7]与令牌的原始索引相对应的数组?

python text tokenize nltk

7
推荐指数
2
解决办法
3797
查看次数

在对字符串进行标记时,如何防止 spacy 的标记生成器拆分特定的子字符串?

在对字符串进行标记时,如何防止 spacy 的标记生成器拆分特定的子字符串?

更具体地说,我有这句话:

一旦取消注册,该文件夹就会离开外壳。

它被scapy 1.6.0标记为 [Once/unregistered/,/the/folder/went/away/from/the/ she/ll /.]。我不希望子字符串shell被切成两个不同的标记shell.


这是我使用的代码:

# To install spacy:
# sudo pip install spacy
# sudo python -m spacy.en.download parser # will take 0.5 GB

import spacy
nlp = spacy.load('en')

# https://spacy.io/docs/usage/processing-text
document = nlp(u'Once unregistered, the folder went away from the shell.')

for token in document:
    print('token.i: {2}\ttoken.idx: {0}\ttoken.pos: {3:10}token.text: {1}'.
      format(token.idx, token.text,token.i,token.pos_))
Run Code Online (Sandbox Code Playgroud)

输出:

token.i: 0      token.idx: 0    token.pos: ADV       token.text: Once
token.i: 1      token.idx: 5    token.pos: …
Run Code Online (Sandbox Code Playgroud)

python nlp tokenize spacy

7
推荐指数
1
解决办法
3123
查看次数

XML/Java:在解析标签和属性时精确的线条和字符位置?

我正在尝试找到一种方法来在解析XML文档时精确确定标记和属性的行号和字符位置.我想这样做,以便我可以准确地向文档无效的XML文档的作者(通过Web界面)报告.

最后,我想将插入符号设置为无效标记或仅在无效属性的开放引用内.(我现在不使用XML Schema,因为属性的确切格式是以一种单独的模式无法验证的方式.我甚至可能希望报告某些属性在属性的值中部分无效.或者类似,在开始和结束标记之间的文本部分.)

我尝试过使用SAX(org.xml.sax)和Locator接口.这可以达到一定程度,但还不够好.它只会事件发生报告读取位置; 例如,对于startElement(),紧接在open标记结束之后的字符.我不能只减去标签名称的长度,因为open标签中的属性,自动关闭标签和/或换行符会将其丢弃.(并且Locator根本不提供有关属性位置的信息.)

理想情况下,我希望使用基于事件的方法,因为我已经有一个SAX处理程序,它正在构建一个内部类似DOM的表示或进一步处理.但是,我有兴趣了解任何DOM或类似DOM的库,其中包含模型元素的精确位置信息.

有没有人用所需的精确度解决了这个问题,或者任何类似问题?

java xml parsing sax tokenize

7
推荐指数
1
解决办法
1013
查看次数

在测试期间重新加载 Keras Tokenizer

我在这里学习了教程:(https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html

但是,我修改了代码,以便能够通过h5py. 因此,在运行训练脚本后,model.h5我的目录中生成了一个。

现在,当我想加载它时,我的问题是我对如何重新启动Tokenizer. 本教程有以下代码行:

tokenizer = Tokenizer(nb_words=MAX_NB_WORDS)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
Run Code Online (Sandbox Code Playgroud)

但假设,如果我model.h5在不同的模块中重新加载,我将需要创建另一个Tokenizer来标记测试集。但是,新的Tokenizer将适合测试数据,从而创建一个完全不同的词表。

因此,我的问题是:如何重新加载Tokenizer在训练数据集上训练的数据?我在某种程度上误解了EmbeddingKeras 层的功能吗?现在,我假设由于我们根据预先训练的词嵌入将某些词索引映射到它们相应的嵌入向量,因此词索引需要保持一致。但是,如果我们fit_on_texts在测试数据集上执行另一个,这是不可能的。

谢谢并期待您的回答!

tokenize text-classification keras tensorflow word-embedding

7
推荐指数
1
解决办法
2619
查看次数

如何为nltk.word_tokenize定义特殊的"不可识别"单词

我用它nltk.word_tokenize来标记一些包含编程语言,框架等的句子,这些句子被错误地标记化.

例如:

>>> tokenize.word_tokenize("I work with C#.")
['I', 'work', 'with', 'C', '#', '.']
Run Code Online (Sandbox Code Playgroud)

有没有办法输入这样的"例外"列表给tokenizer?我已经编制了一份我不想分割的所有内容(语言等)的列表.

tokenize nltk

7
推荐指数
1
解决办法
717
查看次数

tokenizer.texts_to_sequences Keras Tokenizer 给出几乎全零

我正在努力创建一个文本分类代码,但我在使用分词器对文档进行编码时遇到了问题。

1)我首先在我的文档上安装了一个标记器,如下所示:

vocabulary_size = 20000
tokenizer = Tokenizer(num_words= vocabulary_size, filters='')
tokenizer.fit_on_texts(df['data'])
Run Code Online (Sandbox Code Playgroud)

2)然后我想检查我的数据是否正确拟合,所以我转换成如下序列:

sequences = tokenizer.texts_to_sequences(df['data'])
data = pad_sequences(sequences, maxlen= num_words) 
print(data) 
Run Code Online (Sandbox Code Playgroud)

这给了我很好的输出。即将单词编码为数字

[[ 9628  1743    29 ...   161    52   250]
 [14948     1    70 ...    31   108    78]
 [ 2207  1071   155 ... 37607 37608   215]
 ...
 [  145    74   947 ...     1    76    21]
 [   95 11045  1244 ...   693   693   144]
 [   11   133    61 ...    87    57    24]]
Run Code Online (Sandbox Code Playgroud)

现在,我想使用相同的方法将文本转换为序列。像这样:

sequences = tokenizer.texts_to_sequences("physics is nice ")
text = pad_sequences(sequences, …
Run Code Online (Sandbox Code Playgroud)

python nlp tokenize deep-learning keras

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

keras.tokenize.text_to_sequences 和词嵌入有什么区别

之间的区别tokenize.fit_on_texttokenize.text_to_sequence以及word embeddings

试图在各种平台上搜索,但没有得到合适的答案。

tokenize keras word-embedding tensorflow2.0 tensorflow2.x

7
推荐指数
1
解决办法
1821
查看次数

在 SwiftUI TextField 中实现标记

我怎样才能TextField在 SwiftUI 中拥有像 这样的令牌UISearchBar

我尝试插入一个,以便我可以使用它们,但我失去了和 之间UISearchBar的交互行为。TextFieldList

tokenize ios swiftui

7
推荐指数
2
解决办法
2875
查看次数

微调 GPT2 - 注意掩码和 pad token id 错误

我一直在尝试在 wikitext-2 数据集上微调 GPT2(只是为了帮助自己学习该过程),但我遇到了一条我以前从未见过的警告消息:

\n

“未设置注意掩码和填充令牌 ID。因此,您可能会观察到意外行为。请传递您的输入attention_mask以获得可靠的结果。\n设置pad_token_ideos_token_id:50256 以进行开放式生成。”

\n

这看起来很奇怪,因为我在实例化 tokenizer 时在代码中明确指定了 EOS 令牌:

\n
tokenizer = GPT2Tokenizer.from_pretrained(\'gpt2\', bos_token=\'<|startoftext|>\', eos_token=\'<|endoftext|>\', pad_token=\'<|pad|>\')\n
Run Code Online (Sandbox Code Playgroud)\n

训练在没有崩溃的情况下完成,我的损失在每个时期都有所改善,但是当我推断模型时,它输出绝对的乱码 - 有时只生成一个单词而没有其他任何东西。我认为我收到的警告消息与模型表现不佳之间存在联系。

\n

我从这里获得了训练、有效、测试数据(我使用了 .raw 文件) - https://blog.salesforceairesearch.com/the-wikitext-long-term-dependency-language-modeling-dataset/

\n

我在数据集的原始 txt 文件中手动添加了 <|startoftext|> 和 <|endoftext|> 。生成的训练数据类似于这两个示例(取自文本文件的中间):

\n
...\n<|startoftext|>\n= Perfect Dark ( 2010 video game ) = \n \n Perfect Dark is a remastered release of the first @-@ person shooter video game by the same name . Developed by 4J Studios …
Run Code Online (Sandbox Code Playgroud)

machine-learning tokenize training-data gpt-2 fine-tuning

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