小编som*_*ang的帖子

如何使用 BERT 聚类相似的句子

对于 ElMo、FastText 和 Word2Vec,我正在对句子中的词嵌入进行平均,并使用 HDBSCAN/KMeans 聚类对相似的句子进行分组。

在这篇短文中可以看到一个很好的实现示例:http : //ai.intelligentonlinetools.com/ml/text-clustering-word-embedding-machine-learning/

我想使用 BERT(使用 Hugging face 中的 BERT python 包)做同样的事情,但是我不太熟悉如何提取原始词/句子向量以将它们输入到聚类算法中。我知道 BERT 可以输出句子表示 - 那么我实际上如何从句子中提取原始向量呢?

任何信息都有帮助。

python nlp artificial-intelligence word-embedding bert-language-model

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

C#EPPLUS无法获得单元格值

我有单元格"A1",其值为1.00,由公式设置

我想将此值保存到变量中.

我试过了:

ws.Cells["A1"].Value
ws.Cells["A1"].Text
ws.Cells["A1"].GetValue<double>
ws.Cells["A1"].Value.ToString()
Run Code Online (Sandbox Code Playgroud)

这些都不起作用,因为我得到一个错误或我根本没有得到我的号码(console.writeline输出一个空白).

我尝试在线搜索,我得到了我上面尝试的内容.我知道我正在引用单元格,因为我实际上可以正确设置值.

那么我如何实际获得1.00的值并将其保存为双变量?

编辑:我的代码,其中filePath中的工作表的"A1"值为1.00

using (var pck = new ExcelPackage(filePath))
{
   var ws = pck.Workbook.Worksheets[1];

   var test1 = ws.Cells["A1"].Value;
   var test2 = ws.Cells["A1"].Text;
   var test3 = ws.Cells["A1"].GetValue<double>();

   Console.WriteLine(test1);
   Console.WriteLine(test2);
   Console.WriteLine(test3);
 }
Run Code Online (Sandbox Code Playgroud)

输出是:

[blank]
[blank]
0
Run Code Online (Sandbox Code Playgroud)

EDIT2:1.00的值来自公式

.net c# epplus

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

为什么自然语言处理中的 Transformer 需要一堆编码器?

我正在关注这个关于变压器的博客

http://jalammar.github.io/illustrated-transformer/

我唯一不明白的是为什么需要一堆编码器或解码器。我知道多头注意力层捕获了问题的不同表示空间。我不明白为什么需要垂直堆叠的编码器和解码器。一个编码器/解码器层不能工作吗?

nlp machine-learning transformer-model deep-learning

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

C#EPPLUS excel数组公式解决方法

EPPLUS尽管有CreateFormulaArray()方法,但当前版本支持创建excel公式但不是excel数组公式.

使用该CreateFormulaArray()方法时,excel公式编辑器中将显示正确的公式字符串.但是,公式实际上并未在工作表上执行.

我想知道是否有人知道任何聪明的解决方法,而不必使用Microsoft.Office.Interop

我的代码是:

using (ExcelPackage pck = new ExcelPackage(newFile))
{
    pck.Workbook.Worksheets.Add("Summary");
    pck.Workbook.Worksheets.MoveToStart("Summary");
    var summaryWS = pck.Workbook.Worksheets[1];

    summaryWS.Cells["C2"].Value = 2;
    summaryWS.Cells["C3"].Value = 3;
    summaryWS.Cells["C4"].Value = 8;

    summaryWS.Cells["A1"].CreateArrayFormula("STDEV.P($C$2:$C$4)*SQRT(8*260)");
}
Run Code Online (Sandbox Code Playgroud)

我在excel中的输出将是#NAME?
公式编辑器显示的{=STDEV.P($C$2:$C$4)*SQRT(8*260)}

.net c# interop epplus

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