好的,这是我的输入
产品名称
机械
机械,大
农业机械
苹果汁
果汁机
软件开发
业务发展
软件许可
蛋
...
Productname可以是长度不同的任何字符串 - Min(Length())实际上是3,但假设Max(Length())可以是15到50之间的任何值(?)。
我需要的是
a)从上面的源列表中提取每个可能的6克(保存在某处?) b)查看在源列表中找到每个6克的频率
A) “梅钦” “achine” “chiner” “hinery” “inery” “nery,” “ery,B” “ry,Bi” ... “icensi” “censin” “ensing” “鸡蛋”
b)中 基本上,SELECT< 6-gram> AS克,COUNT(*)FROM产品WHERE产品名称如'%< 6-gram>%' (或者如果将克存储在不同的表中,可以使用JOIN)
我可以使用TJava组件和GlobalVar Set对象(有点如下所示:http://bekwam.blogspot.de/2012/08/iterating-over-java-collection-with.html),一次将一个String放入TJava组件并制作一组所有可能的6克,之后可以处理。 (设置,因为我不需要重复)
有更简单,更好的方法吗?最好没有TJava组件?我99%的时间使用Talend Open Studio进行数据集成,也许其他组件可以做到这一点? 如果没有更好的方法可以做到这一点,我如何重新使用其他工作和代码中的代码?通过允许选择4克,5克,n-gram,使项目更具动态性。
第一个问题在这里提出,请原谅我,如果它不够具体/不良英语/不够精确。批评欢迎
从德国选择问候语 斯蒂芬
答案 0 :(得分:0)
没有任何组件可以实现此目的,只需使用user routine,即可从项目中的任何作业中看到它。另一种方法是将其打包在jar文件中,并在需要使用tLibraryLoad时加载它。
要使代码动态化,您可以使用context variables并将其传递给您的方法,如下所示:MyStaticRoutine.getNgrams(input,n);