如何将矢量标准化为范围[-1;1]
我想使用函数norm,因为它会更快.
还让我知道如何在归一化后对该向量进行非规范化?
我有以下代码:
string input = "ç";
string normalized = input.Normalize(NormalizationForm.FormD);
char[] chars = normalized.ToCharArray();
Run Code Online (Sandbox Code Playgroud)
我使用Visual Studio 2010,.net4在64位Windows 7上构建此代码.
我在两个上下文中的单元测试项目(平台:任何CPU)中运行它并检查以下内容chars:
在msdn文档中,我找不到任何表示不同行为的信息.
那么,为什么我会得到不同的行为?对我来说,NCrunch行为是预期的行为,但我希望其他行为也是如此.
编辑: 我切换回.Net 3.5仍然有同样的问题.
我正在尝试根据子属性的值过滤jmespath中对象的属性,并且只想包含子属性设置为特定值的那些属性.
基于此示例数据:
{
"a": {
"feature": {
"enabled": true,
}
},
"b": {
},
"c": {
"feature": {
"enabled": false
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想获得一个具有启用该功能的所有属性的对象.
{
"a": {
"feature": {
"enabled": true,
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想我可以使用这个jmespath查询来过滤property. enabled设置为true 的对象.不幸的是,它似乎不起作用而是返回一个空数组.
*[?feature.enabled==`true`]
Run Code Online (Sandbox Code Playgroud)
*.feature.enabled或者*[feature.enabled]只返回没有任何上下文的布尔值.
即使*[?feature.enabled==true ]可以工作,它也只是属性值的数组,但我还需要键(a和c).有没有办法在jmespath中实现这一点?
这是一个ansible playbook的所有部分,所以肯定会有一种方法以不同的方式实现选择(Jinja2模板或自定义插件),但我想尝试jmespath并且会推理它应该能够执行这样的任务.
我正在努力研究如何提高solr搜索结果的得分.我的应用程序需要从solr结果中获取分数,并根据查询的结果有多好来显示一些"星星".5星=差不多/精确到0星,意味着不能很好地匹配搜索,例如只有一个元素命中.然而,我得到的分数从1.4到0.8660254都返回结果,我会给5星.我需要做的是以某种方式将这些结果转换为百分比,以便我可以用正确的星数来标记这些结果.
我运行的查询给出了1.4分:
euallowed:true AND(等级:"2:1")
给我0.8660254分数的查询是:
euallowed:true AND(等级:"2:1"或等级:"1st")
我已经更新了Similarity,以便tf和idf返回1.0,因为我只对文档中有一个术语而不是文档中该术语的编号感兴趣.这就是我的相似性代码:
import org.apache.lucene.search.Similarity;
public class StudentSearchSimilarity extends Similarity {
@Override
public float lengthNorm(String fieldName, int numTerms) {
return (float) (1.0 / Math.sqrt(numTerms));
}
@Override
public float queryNorm(float sumOfSquaredWeights) {
return (float) (1.0 / Math.sqrt(sumOfSquaredWeights));
}
@Override
public float sloppyFreq(int distance) {
return 1.0f / (distance + 1);
}
@Override
public float tf(float freq) {
return (float) 1.0;
}
@Override
public float idf(int docFreq, int numDocs) {
//return (float) (Math.log(numDocs / (double) (docFreq + …Run Code Online (Sandbox Code Playgroud) 我有一个我正在使用的Web应用程序,它使用MySQL数据库作为后端,我需要知道在我继续进行之前,对我的情况有什么好处.
简单地说,在这个应用程序中,用户将能够使用任何数字字段(他们决定)构建自己的表单,现在我将它全部存储在由外键链接的几个表中.我的一位朋友建议,为了保持"简单/快速",我应该将每个用户的表单转换为平面表,以便查询来自它们的数据保持快速(如果增长很大).
我是否应该将数据库标准化为使用外键(索引等)汇集到关系表中的所有内容,还是应该为用户创建的每个新表单构建平面表?
显然,创建平面表的一些好处是数据分离(安全性),并且会降低查询速度.但是,我会从中获得多少收益呢?我真的不想要10000个表,并且要丢弃,改变和添加所有的时间,但如果它会比我更好...我只需要一些输入.
谢谢
我的印象是JavaScript解释器假定它正在解释的源代码已经被规范化了.什么,正常化?它不能是文本编辑器,否则源的明文表示会改变.是否有一些"预处理器"可以进行规范化?
您通常会规范化数据库以避免数据冗余.在一个充满名称的表格中很容易看到有足够的冗余.如果你的目标是创建一个地球上每个人的名字目录(祝你好运),我可以看到规范化名称是如何有益的.但在平均业务数据库的背景下是否过度杀伤?
(当然我知道你可以采取任何极端的事情......如果你将音节标准化为音节......或者甚至是相邻的角色对.我看不到这么远的好处)
更新:
一个可能的理由是随机名称生成器.这就是我能想到的一切.
我的教授(声称多年来对系统开发有了深刻的理解),我正在争论数据库的设计.
举个例子:我的教授坚持认为这个设计是对的:(列表)
Subject_ID
Description
Units_Lec
Units_Lab
Total_Units
Run Code Online (Sandbox Code Playgroud)
等等...
注意总单位列.他说必须包括这个专栏.我试图解释这是不必要的,因为如果你想要它,那么只需添加两个就可以进行查询.
我向他展示了我在一本书中找到的一个例子,但他坚持认为我不必过多地依赖书籍制作我们的系统.同样的情况适用于此类似的案例:
student_ID
prelim_grade
midterm_grade
prefinal_grade
average
Run Code Online (Sandbox Code Playgroud)
等...
他希望我把平均值包括在内!无论我走到哪里,我都会发现自己在阅读那些让我相信这违反了规范化的文章.如果我需要平均值,我可以轻松计算三个等级.他列举了一些场景,包括('嘿!如果查询被意外删除怎么办?你会做什么?这就是为什么你需要把它包含在你的桌子里!')
我是否需要重建我的数据库(包含大约40多个表)才能符合他的要求?我错了,只是忽略了这些事情?
编辑:
另一件事是他想在支付表中包括总金额,我认为这是不必要的(只需计算产品的单价和数量).他指出,我们需要该列来计算对整个系统管理至关重要的借方和/或贷方,这是平衡交易所需要的.请告诉我你的想法.
omit_normselasticsearch中选项的一个很好的用例是什么?我在es网站上找不到足够的解释.
假设我有一个读取.WAV或.AIFF文件的程序,文件的音频被编码为浮点样本值.我的程序假设任何格式良好(基于浮点的).WAV或.AIFF文件只包含[-1.0f,+ 1.0f]范围内的样本值是否正确?我找不到解决这一点的WAV或AIFF规范中的任何内容.
如果这不是一个有效的假设,那么如何才能知道文件中音频的完整动态范围是什么?(我可以读取整个文件并找出文件的实际最小和最大样本值是什么,但是有两个问题:(1)如果文件非常大,那将是一个缓慢/昂贵的操作,(2) )它会丢失信息,因为如果文件的创建者打算让文件有一些"余量",以免在dbFS最大点播放,我的程序将无法检测到这一点)