我有一个我想要搜索的URL数据库.因为URL并不总是写成相同的(可能有也可能没有www),我正在寻找索引和查询URL的正确方法.我尝试了一些东西,我认为我很接近但不确定为什么它不起作用:
这是我的自定义字段类型:
<fieldType name="customUrlType" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
例如:
http://www.twitter.com/AndersonCooper 在编入索引时,将在不同的位置有以下单词:http,www,twitter,com,andersoncooper
如果我只搜索twitter.com/andersoncooper,我希望这个查询匹配索引的记录,这就是为什么我也使用WDF来分割搜索查询,但搜索查询最终是这样的:
myfield :("twitter com andersoncooper")真的希望它匹配所有包含以下所有单词的记录:twitter com andersoncooper
我应该使用不同的查询过滤器或标记器吗?
如何使Lucene的标准分析器在'.'上进行标记化.炭?例如,在查询"B"时,我需要它返回"ABC"中的B作为结果.我需要按标准分析仪处理它的方式处理数字,因此Simple分析器是不够的.如果我可以指定标准分析器来标记''',那将是完美的.char也是.如果我不得不用这个小扩展编写我自己的标记器,我该怎么办?谢谢,Nacha
我正在建立一个学习基本编程的网站,我将使用伪语言,用户可以在其中提交代码,我需要解释它.但是我不确定如何在PHP中构建一个tokenizer.
有一个像这样的片段:
a = 1
b = 2
c = a - b
if(a > b) {
buy(a)
} else {
buy(b)
}
Run Code Online (Sandbox Code Playgroud)
我该如何将这些代码分成令牌?
-
这就是我现在正在尝试的事情:
$tokens = array();
// First token (define string)
$token = strtok($botCode, '=');
$tokens[] = $token;
// Loop
while($token) {
$token = strtok('=');
$tokens[] = $token;
}
Run Code Online (Sandbox Code Playgroud)
然而,我还没有弄清楚如何使用strtok与常规表达式列表...我可以做类似于strtok但是接受数组作为带有substr和strrpos的针但是在我看来它应该是可能的用strtok做的,因为它专为此而设计.任何信息或指向正确的方向将不胜感激
这是我用于twitter的语义分析的代码: -
import pandas as pd
import datetime
import numpy as np
import re
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from nltk.stem.wordnet import WordNetLemmatizer
from nltk.stem.porter import PorterStemmer
df=pd.read_csv('twitDB.csv',header=None,
sep=',',error_bad_lines=False,encoding='utf-8')
hula=df[[0,1,2,3]]
hula=hula.fillna(0)
hula['tweet'] = hula[0].astype(str)
+hula[1].astype(str)+hula[2].astype(str)+hula[3].astype(str)
hula["tweet"]=hula.tweet.str.lower()
ho=hula["tweet"]
ho = ho.replace('\s+', ' ', regex=True)
ho=ho.replace('\.+', '.', regex=True)
special_char_list = [':', ';', '?', '}', ')', '{', '(']
for special_char in special_char_list:
ho=ho.replace(special_char, '')
print(ho)
ho = ho.replace('((www\.[\s]+)|(https?://[^\s]+))','URL',regex=True)
ho =ho.replace(r'#([^\s]+)', r'\1', regex=True)
ho =ho.replace('\'"',regex=True)
lem = WordNetLemmatizer()
stem = PorterStemmer() …Run Code Online (Sandbox Code Playgroud) 是否有任何开源库(任何语言,python/PHP首选)将ANSI SQL字符串标记/解析为其各种组件?
也就是说,如果我有以下字符串
SELECT a.foo, b.baz, a.bar
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.id = b.id
WHERE baz = 'snafu';
Run Code Online (Sandbox Code Playgroud)
我会找回类似的数据结构/对象
//fake PHPish
$results['select-columns'] = Array[a.foo,b.baz,a.bar];
$results['tables'] = Array[TABLE_A,TABLE_B];
$results['table-aliases'] = Array[a=>TABLE_A, b=>TABLE_B];
//etc...
Run Code Online (Sandbox Code Playgroud)
重申一下,我正在寻找数据库包中的代码,它将SQL命令分开,以便引擎知道如何处理它.搜索互联网会产生很多关于如何使用SQL解析字符串的结果.那不是我想要的.
我意识到我可以浏览一个开源数据库的代码来找到我想要的东西,但我希望能做一些更准备好的东西,(虽然如果你知道在MySQL,PostgreSQL,SQLite源代码的哪个地方,请随意通过它一起)
谢谢!
我将收到用中文编写的文档,我必须对其进行标记并将其保存在数据库表中。我正在尝试 Lucene 的 CJKBigramFilter,但它所做的只是将 2 个字符联合在一起,其含义与文档中的含义不同。假设这是文件“Hello My name is Pradeep”中的一行,在中文传统中是“\xe4\xbd\xa0\xe5\xa5\xbd\xe6\x88\x91\xe7\x9a\x84\xe5\x90\ x8d\xe5\xad\x97\xe6\x98\xaf\xe6\x99\xae\xe6\x8b\x89\xe8\xbf\xaa\xe6\x99\xae”。当我对其进行标记时,它会转换为下面的 2 个字母单词。\n\xe4\xbd\xa0\xe5\xa5\xbd - Hello\n\xe5\x90\x8d\xe5\xad\x97 - 名称\n\ xe5\xa5\xbd\xe6\x88\x91 - 嗯,我\n\xe5\xad\x97\xe6\x98\xaf - 字是\n\xe6\x88\x91\xe7\x9a\x84 - 我的\n\ xe6\x8b\x89\xe8\xbf\xaa - Radi\n\xe6\x98\xaf\xe6\x99\xae - 是 S & P\n\xe6\x99\xae\xe6\x8b\x89 - 普拉\ n\xe7\x9a\x84\xe5\x90\x8d - 以\n\xe8\xbf\xaa\xe6\x99\xae 的名义 - Dipp。\n我想要的只是将其转换为相同的英文翻译。\nI我正在为此使用 Lucene...如果您有任何其他有利的 opne 源,请指示我。\n提前致谢
\n我有一个 pandas 数据框 raw_df,有 2 列、ID 和句子。我需要将每个句子转换为字符串。下面的代码不会产生错误,并表示规则的数据类型是“对象”。
raw_df['sentences'] = raw_df.sentences.astype(str)
raw.df.sentences.dtypes
Run Code Online (Sandbox Code Playgroud)
输出:dtype('O')
然后,我尝试对句子进行标记并得到一个 TypeError ,该错误表明该方法需要一个字符串或类似字节的对象。我究竟做错了什么?
raw_sentences=tokenizer.tokenize(raw_df)
Run Code Online (Sandbox Code Playgroud)
相同类型错误
raw_sentences = nltk.word_tokenize(raw_df)
Run Code Online (Sandbox Code Playgroud) 在尝试使用encode_plusTransformers 库中提供的方法为 BERT 编码问答对时,我遇到了一个奇怪的错误。
我正在使用来自这个 Kaggle 比赛的数据。给定问题标题、问题正文和答案,模型必须预测 30 个值(回归问题)。我的目标是将以下编码作为 BERT 的输入:
[CLS] question_title question_body [SEP] 回答 [SEP]
但是,当我尝试使用
tokenizer = transformers.BertTokenizer.from_pretrained("bert-base-uncased")
Run Code Online (Sandbox Code Playgroud)
并仅对来自 train.csv 的第二个输入进行编码,如下所示:
inputs = tokenizer.encode_plus(
df_train["question_title"].values[1] + " " + df_train["question_body"].values[1], # first sequence to be encoded
df_train["answer"].values[1], # second sequence to be encoded
add_special_tokens=True, # [CLS] and 2x [SEP]
max_len = 512,
pad_to_max_length=True
)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Token indices sequence length is longer than the specified maximum sequence length for this model (46 > 512). …Run Code Online (Sandbox Code Playgroud) 我有一个句子,我需要返回特定单词左右两侧 N 个 BERT 标记对应的文本。
from transformers import BertTokenizer
tz = BertTokenizer.from_pretrained("bert-base-cased")
sentence = "The Natural Science Museum of Madrid shows the RECONSTRUCTION of a dinosaur"
tokens = tz.tokenize(sentence)
print(tokens)
>>['The', 'Natural', 'Science', 'Museum', 'of', 'Madrid', 'shows', 'the', 'R', '##EC', '##ON', '##ST', '##R', '##UC', '##TI', '##ON', 'of', 'a', 'dinosaur']
Run Code Online (Sandbox Code Playgroud)
我想要的是获取与令牌马德里左侧和右侧的4个令牌相对应的文本。所以我想要标记: ['Natural', 'Science', 'Museum', 'of', 'Madrid', 'shows', 'the', 'R', '##EC'] 然后将它们转换为原文。在本例中,它将是“马德里自然科学博物馆展示 REC”。
有没有办法做到这一点?
python tokenize bert-language-model huggingface-transformers huggingface-tokenizers