好,这是我的输入

产品名称

机械

大型机械

农业机械

苹果汁

果汁机

软件开发

业务发展

软件许可



...

产品名称可以是长度可变的任何字符串-Min(Length())实际上是3,但假设Max(Length())可以是15到50(?)之间的任何值。

我需要的是

a)从上面的来源列表中提取所有可能的6克(保存在某处?)
b)看看每6克重物在来源清单中被发现的频率

一种)
“机器”
“机器”
“ chiner”
“内衣”
“ inery”
“书呆子”
“ ery,B”
“瑞,碧”
...
“ icensi”
“ censin”
“正在”
“蛋”

b)
基本上,从产品名称为'%%'的产品中选择SELECT AS gram,COUNT(*)
(或者,如果克存储在不同的表中,则可以使用JOIN)

我可以使用TJava组件和GlobalVar Set对象(如此处所示:http://bekwam.blogspot.de/2012/08/iterating-over-java-collection-with.html)来完成此操作,一次将一个String放入TJava Component中,并制作一组所有可能的6克字符,然后可以对其进行处理。 。 (设置,因为我不需要重复)

有没有更简单,更好的方法来做到这一点?最好没有TJava组件?我99%的时间都使用Talend Open Studio进行数据集成,也许其他组件可以做到这一点?
如果没有更好的方法,我该如何重用其他Jobs&Projects中的代码/通过选择4克,5克,n克来使其更具动态性。

第一个问题在这里提出,请原谅我,如果它不够具体/英语不好/不够精确。批评欢迎

选择来自德国的问候
斯特凡

最佳答案

没有使它可重用的组件,只需使用user routine,它就可以在项目中的任何作业中看到。另一种方法是将其打包到jar文件中,并在需要使用tLibraryLoad加载时加载。
要使代码动态,可以使用context variables并将其传递给您的方法,如下所示:MyStaticRoutine.getNgrams(input,n);

08-08 08:11