小编inv*_*dex的帖子

如何在Lucene 5.3.x中使用BooleanQuery构建器?

我几乎是lucene的新手,并尝试和一些查询并显示它们.我已经google了整个网络,但无法找到解决此问题的正确方法.布尔查询搜索的解决方案包括BooleanQuerylucene类.但这个类在Lucene的5.3.1(我使用的)不推荐这里

这是我的代码的一部分:

public static void searchBooleanQuery(String indexDir, Query query1,
                                       Query query2, Query query3, Query query4) throws IOException {
    IndexReader rdr =  DirectoryReader.open(FSDirectory.open(Paths.get(indexDir)));
    IndexSearcher is = new IndexSearcher(rdr);
    BooleanQuery.Builder booleanQuery = new BooleanQuery.Builder();
    booleanQuery.add(query1, BooleanClause.Occur.MUST);
    booleanQuery.add(query2, BooleanClause.Occur.MUST);
    booleanQuery.add(query3, BooleanClause.Occur.MUST);
    booleanQuery.add(query4, BooleanClause.Occur.MUST);
}
Run Code Online (Sandbox Code Playgroud)

更新

问题:我不能显示此Boolean Query通过IndexSearcher对象,因为这个类(IndexSearcher的)的搜索方法应该由查询传递!因此,当我尝试运行此代码时,它会给我一个错误:

TopDocs hits = is.search(booleanQuery,10);
...
Run Code Online (Sandbox Code Playgroud)

java lucene information-retrieval

10
推荐指数
1
解决办法
4594
查看次数

在小型自定义语料库上预训练语言模型

我很好奇是否可以在文本生成中使用迁移学习,并在特定类型的文本上重新训练/预训练。

例如,拥有一个预训练的 BERT 模型和一个小的医学(或任何“类型”)文本语料库,创建一个能够生成医学文本的语言模型。假设您没有大量的“医学文本”,这就是您必须使用迁移学习的原因。

把它作为一个管道,我会把它描述为:

  1. 使用预训练的 BERT 分词器。
  2. 从我的新文本中获取新标记并将它们添加到现有的预训练语言模型(即 vanilla BERT)中。
  3. 使用组合标记器在自定义语料库上重新训练预训练的 BERT 模型。
  4. 生成与小型自定义语料库中的文本相似的文本。

这听起来很熟悉吗?抱脸可以吗?

deep-learning language-model transfer-learning bert-language-model huggingface-transformers

5
推荐指数
1
解决办法
1672
查看次数

使用掩模时的 MSELoss

我正在尝试计算使用掩码时的 MSELoss。假设我有一个batch_size为2:的张量[2, 33, 1]作为我的目标,还有另一个具有相同形状的输入张量。由于每个实例的序列长度可能不同,因此我还有一个二进制掩码,指示输入序列中每个元素的存在。所以这就是我正在做的:

mse_loss = nn.MSELoss(reduction='none')

loss = mse_loss(input, target)
loss = (loss * mask.float()).sum() # gives \sigma_euclidean over unmasked elements

mse_loss_val = loss / loss.numel()

# now doing backpropagation
mse_loss_val.backward()
Run Code Online (Sandbox Code Playgroud)

loss / loss.numel()一个好的做法吗?我持怀疑态度,因为我必须使用reduction='none'并且在计算最终损失值时,我认为我应该仅考虑那些非零(即未屏蔽)的损失元素来计算损失,但是,我取所有张量元素的平均值和torch.numel()。我实际上正在尝试考虑1/nMSELoss 因素。有什么想法吗?

loss backpropagation neural-network pytorch

5
推荐指数
1
解决办法
6255
查看次数

对文件夹的 ajax 调用权限包含 .htaccess

我的根目录上有一个名为chatlogs的文件夹(路径:root/chatlogs),在chatlogs文件夹中有一个 .htaccess 文件,文件拒绝从 url 对聊天日志内容的任何请求。现在我想允许对这个文件夹的 ajax 调用。(想象一些名为 : log0.html , log1.html , ... 在 chatlogs 文件夹中的文件)

访问:

Deny from all
Run Code Online (Sandbox Code Playgroud)

我的 ajax 调用:

function loadLog(){     
   $.ajax( {
     url: "chatlogs/log0.html",
     cache: false,
     success: function( html ){
        $(" #chatbox ").html( html ); //Insert chat log into the #chatbox div   
              }             
     },
   });
setInterval ( loadLog, 1500 );
Run Code Online (Sandbox Code Playgroud)

显然 loadlog() 函数无法访问chatlogs文件夹。如何允许此 ajax 调用进入chatlogs文件夹?我应该在 .htaccess 文件中添加一些行吗???提前致谢

php ajax jquery

4
推荐指数
1
解决办法
3890
查看次数

在Python字典中匹配不完整的字符串

我有这个字典,其中键是字符串,值是整数,如:

{
...
'X ontology entity': 0, 
'X entity': 1, 
'image quality': 10, 
'right lower kidney': 10, 
'magnetic resonance imaging': 10312, 
'MR imaging': 10312, 
 ...
}
Run Code Online (Sandbox Code Playgroud)

我正在迭代这个词典的键,试图用这些键匹配一系列令牌.假设我有以下一系列令牌:

MR imaging shows that the patient suffers from infection in right lower kidney.
Run Code Online (Sandbox Code Playgroud)

我只是用空格分割上面的文字.

我想匹配MR成像,以及右下肾,因为它们是字典中的关键.所以,我写了下面的代码,我可以匹配"MR成像",而不是"右下肾".(注意,键组中不存在右下方)

found = []
for i, t in enumerate(tokens):
    term = [tokens[i]]
    j = deepcopy(i)
    while (' '.join(term) in self.db_terms):
        if j < len(tokens):
            j += 1
            term.append(tokens[j])
    found.append(' '.join(term[:-1]))
return set(found)
Run Code Online (Sandbox Code Playgroud)

我不知道如何通过键搜索"右下方",匹配"右下肾",然后去检查第三个索引.

任何帮助,将不胜感激!谢谢!

python regex string string-matching

4
推荐指数
1
解决办法
315
查看次数

如何获取lucene设置的内部文档ID

我在 index 模块中索引了一些文档。直观地说,Lucene 设置IDs为任何索引文档。不过,这些IDs可能没有特定的顺序。具体来说,第一个文档 ID 设置为127,第二个设置为133等等...

在搜索模块中,我有文档(我想处理它),但我正在尝试获取这些已经设置的docIDs(由 Lucene 在索引时间设置)请参阅下面的代码:

private long calculateProbabilityOfDocument(String topic, Document doc){   

  Terms termVector = iReader.getTermVector(DOCID, FIELD);
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我认为 Lucene 可能不允许我访问内部 ID。还有其他方法吗?

提前致谢!

java lucene

3
推荐指数
1
解决办法
3490
查看次数

if 和 else 在单行 python 循环中

抱歉,如果这么简单的话;当我在其他地方搜索时,但没有人指出这个具体问题。我想以一种使我的代码紧凑的方式学习Python!因此,为此,我尝试使用单行(即短)循环而不是多行循环,特别是 for 循环。当我尝试在单行循环内使用单行 if 和 else 时,问题就出现了。它似乎不起作用。例如,考虑以下情况:

numbers = ... # an arbitrary array of integer numbers

over_30 = [number if number > 30 for number in numbers]
Run Code Online (Sandbox Code Playgroud)

这是有问题的,因为one-line if确实需要else遵循它。尽管如此,当我添加else到上面的脚本(在if):之后over_30 = [number if number > 30 else continue for number in numbers],它变成了另一个 pythonic 错误。

我知道问题实际上出在单行 if 和 else 上,因为 python 需要识别一个应该分配给左侧运算符的值。但是,对于上述模式的特定用例是否有解决方法?

python for-loop if-statement list-comprehension

3
推荐指数
1
解决办法
9843
查看次数

波斯语和阿拉伯语字符串未在tcpdf中显示

我正在使用tcpdf库生成pdf文档.但是当我想使用波斯语(或阿拉伯语)字符串时,它会'?'在文档上打印一些问号.如何处理此问题以打印正确的表单?require_once( 'TCPDF/tcpdf.php');

$irsans = TCPDF_FONTS::addTTFfont('tcpdf/fonts/IRAN-Sans-Bold.ttf', 'TrueTypeUnicode', '', 32);

class CPDF extends TCPDF {

    //Page header
    public function Header() {
                $this->setHeaderFont(Array($irsans, '', 12)); //Set header font
                $this->WriteHTML('????', true, 0, true, 0); //TITLE string in persian language
    }
}
// create new PDF document
$pdf = new CPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
Run Code Online (Sandbox Code Playgroud)

提前致谢,

php pdf tcpdf

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

time()和Date.now()之间有什么区别

我有这个值与PHP时间():1454346117

与JavaScript Date.now()同时:1454346117299

正如您在JavaScript中看到的那样,我最后还有3位数.如何解决我需要相同的号码?

谢谢

javascript php

0
推荐指数
1
解决办法
160
查看次数

如何在c中声明数组

我在学习c时仍然知道,我面临以下问题.

我试图初始化声明一个数组但它给我编译错误.

const   int a =2;
int x[a]={2};
Run Code Online (Sandbox Code Playgroud)

c arrays

-2
推荐指数
1
解决办法
60
查看次数