我知道约束编程背后的直觉,可以说我从未真正体验过使用约束求解器进行编程。尽管我认为能够获得我们定义为一致数据的情况是不同的情况。
内容:
我们有一组要在ETL服务器上实现的规则。这些规则是:
第三种情况与第二种情况不同,它在第二种情况成立时适用,但运行次数已明确定义。它可能适用于单次运行(一个文件),或之间(1到n(先前)或在所有文件上)。
从技术上讲,正如我们所构思的ETL一样,它在两次运行之间没有内存:两个文件(但这需要重新考虑)
对于第三种规则的应用,ETL需要具有内存(我认为我们将最终备份ETL中的数据)。或在某个时间段后通过对整个数据库进行无限次重新检查(一个作业),因此最终存储在数据库中的数据不一定能及时满足第三种规则。
例:
当我们有连续的数据流时,我们将约束应用于整个约束数据库,第二天我们将收到一个月的备份或更正数据,对于这个时间范围,我们希望仅对此满足约束运行(此时间窗口),而不用担心整个数据库,对于将来的运行,所有数据都应像以前一样受到约束,而不必担心过去的数据。您可以想象其他符合时态逻辑的规则。
目前,我们只实施了第一类规则。我认为它的方式是拥有一个缩小的数据库(任何类型的数据库:MySQL,PostgreSQL,MongoDB ...),该数据库备份所有数据(仅包含受约束的列,可能带有散列值),并带有基于早期基于一致性的标志一种规则。
问题:是否有任何解决方案/概念替代方案可以简化此过程?
为了说明在库克的编程语言; 一组规则和以下操作的示例:
run1 : WHEN tableA.ID == tableB.ID AND tableA.column1 > tableB.column2
BACK-UP
FLAG tableA.rule1
AFTER run1 : LOG ('WARN')
run2 : WHEN tableA.column1 > 0
DO NOT BACK-UP
FLAG tableA.rule2
AFTER run2 : LOG ('ERROR')
Run Code Online (Sandbox Code Playgroud)
注意:虽然约束编程理论上是解决组合问题的范例,但实际上可以加快问题的开发和执行;我认为这与约束解决问题有所不同。由于第一个目的不是在解决之前优化约束,所以可能甚至没有限制数据域。主要关心的是在数据接收上应用规则并执行一些基本操作(拒绝行,接受行,记录...)。
我真的希望这不是一个很广泛的问题,这是正确的地方。
我想自定义404响应,服务器(不是我)在无法找到所请求的资源时抛出,(或者自己抛出一个自定义的WebApplicationException,如果可以测试一个应用程序中是否存在所请求的资源?可能是资源列表存储在某处?).请不要向我推荐那些建议扩展WebApplicationException的解决方案,因为即使这样做,我的问题是何时抛出它?,当找不到资源时!但如何在泽西框架中表达这种需求
我正在分析社交网络上的情绪.基于相关的不同主题作为输入.我们如何处理个别主题分数的分散?
例如:我们试图对包含不同关键字的主题的主题情绪进行评分,假设主题是创新周,其中包含以下主题(关键字或同义词):
Innovation week = {"innovation week", "data solution", "emerging technologies", "august 30"...}.
如果分数的标准偏差如此之大,该怎么办?我们是否质疑:
情绪分析算法本身?
输入关键字?
或者我们只是按原样取得结果?因为它们代表了构成主题的不同粒度级别的人们的不同观点?最终的目的是对主题有一个总体的见解.
我认为问题很简单,尽管这是社交网络中任何情绪分析研究的一个问题.
我有两个生命周期脚本执行两个逻辑块,从技术上讲,根据定义,所有脚本都可以是单个脚本(只是在实例启动时运行的 shell 脚本)。
实际上,对于多个笔记本,我的两个生命周期非常不同,一个是通用的:仅根据技术环境进行更改:开发、生产、沙箱;但另一个更具体:每个区域和每个用户。
重构现有代码非常困难,因此已经存在的生命周期(通用生命周期)这次是特定于用户/区域的会话。
另外,在运行时,根据用户的选择,新的 Sagemaker 可以有一个策略,也可以有两个策略,也可以没有策略。
我花了一些时间阅读 AWS 文档,但似乎只有一个生命周期可以附加到一台 sagemaker 笔记本上。
有解决方法吗?
我遇到了Java原始类型范围,我想出了一个小小的混乱,这里有一些代码清楚地说明了它的含义:
System.out.println((byte) (Math.pow(2, 7))+1); //the maximum value + 1 overflows to the minimum value
System.out.println((short) (Math.pow(2, 15)-1)); //same for shorts
System.out.println((int) Math.pow(2, 31));
System.out.println((int) (Math.pow(2, 31)+1)); //returns the maximum value of the int range
System.out.println((int) (Math.pow(2, 31)+100)); //returns the maximum value of the int range
Run Code Online (Sandbox Code Playgroud) 我的文字来源于社交网络,所以你可以想象它的本质,我认为文字是我所能想象的干净和最小的;执行以下消毒后:
我认为运行时间是线性的,我不打算进行任何并行化,因为更改可用代码需要付出大量的努力,例如,对于大约 1000 个文本,范围从 ~50 kb 到 ~150 kb 字节,它需要大约
在我的机器上运行时间约为 10 分钟。
有没有更好的方法来输入算法以加快烹饪时间?代码就像 SentimentIntensityAnalyzer 的工作一样简单,这是主要部分
sid = SentimentIntensityAnalyzer()
c.execute("select body, creation_date, group_id from posts where (substring(lower(body) from (%s))=(%s)) and language=\'en\' order by creation _ date DESC (s,s,)")
conn.commit()
if(c.rowcount>0):
dump_fetched = c.fetchall()
textsSql=pd.DataFrame(dump_fetched,columns=['body','created_at', 'group_id'])
del dump_fetched
gc.collect()
texts = textsSql['body'].values
# here, some data manipulation: steps listed above
polarity_ = [sid.polarity_scores(s)['compound'] for s in texts]
Run Code Online (Sandbox Code Playgroud) python performance data-manipulation sentiment-analysis vader
我陷入了情绪分析,发现了Vader解决方案,这是迄今为止我能找到的最好的解决方案。我的问题是,我找不到任何有关如何用英语以外的其他语言来喂养它的文档。
为了使网络应用程序更安全并迫使自己更好地控制未来的添加(不同 CDN 上的 JS 和 CSS 资产),我在我的 Fastify(与 Express 相同)网络应用程序中运行 Helmet 插件。
如果我停用所有头盔控件,如下所示:
fastify.register(helmet, false)一切正常并且所有资源都加载到客户端上。
然后我尝试用不同的配置玩(直到精疲力竭),但没有任何效果。配置和浏览器错误如下:
{
// contentSecurityPolicy: false,
crossOriginResourcePolicy: { policy: 'same-site'},
contentSecurityPolicy: {
directives: {
...require("fastify-helmet").contentSecurityPolicy.getDefaultDirectives(),
"default-src": ["'self'"],
"style-src": ["'self'", "'unsafe-inline'", 'unpkg.com', 'cdn.jsdelivr.net',
'fonts.googleapis.com', 'use.fontawesome.com'],
"script-src": ["'self'", 'unpkg.com', "cdn.jsdelivr.net", "'unsafe-inline'"],
"img-src": ["'self'", "'data'", "*.tile.osm.org"],
"font-src": ["'self'", 'fonts.googleapis.com', 'fonts.gstatic.com', 'use.fontawesome.com']
},
},
};
Run Code Online (Sandbox Code Playgroud)
均匀设置
{ contentSecurityPolicy: false, crossOriginResourcePolicy: { policy: 'same-site'} }
Run Code Online (Sandbox Code Playgroud)
与政策的其他变化:同源、跨源似乎都不起作用。
正如你所看到的,我也在 LOCALHOST 上运行,我没有在其他地方进行测试。
一种简单的方法是迭代数组T []并分配其类型为V的字段并填充新数组.但是,是否有更高效/更优雅的方式(可能是Java中的内置功能)?
编辑:我试过的代码:
Locale[] locs = Locale.getAvailableLocales();
String[] coutries = new String[locs.length] ;
for (int i = 0; i < locs.length; i++) {
coutries[i] = locs[i].getDisplayCountry();
}
Run Code Online (Sandbox Code Playgroud)
Edit2:对于大约200个元素的小数组,似乎对流使用map操作更快,这是第二种方法:
coutries = Arrays.stream(locs).map(Locale -> Locale.getDisplayCountry()).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud) 有这样一个对象
obj = [{id:1, val:"blabla"}, {id:2, val:"gnagna"}]
Run Code Online (Sandbox Code Playgroud)
我们如何obj用idlike索引obj[id==1](Pandas Pythonic 方式)。
我假设以下几点:
如何在Java中声明一个数组,同时初始化它的一些已知元素?首先,此方法声明但不初始化元素:
public static someClass myArray[] = new someClass[10]; // all values are null,
Run Code Online (Sandbox Code Playgroud)
现在想象我知道第一个元素的值而不是其他元素,它是在一些逻辑之后我为它们赋值,第二个建议是:
public static someClass[] myArray = {new someClass(),null,null};
Run Code Online (Sandbox Code Playgroud)
所以这条指令有效,但对200个元素的数组做同样的事情是不切实际的
java ×3
arrays ×2
performance ×2
python ×2
vader ×2
constraints ×1
database ×1
declaration ×1
etl ×1
helmet.js ×1
httpserver ×1
iteration ×1
javascript ×1
jersey ×1
json ×1
node.js ×1
null ×1
range ×1
types ×1
validation ×1