[英]How to split Strings into all possible n-grams / all possible 6-grams
好,这是我的输入
产品名称
机械
大型机械
农业机械
苹果汁
果汁机
软件开发
业务发展
软件许可
蛋
...
产品名称可以是长度可变的任何字符串-Min(Length())实际上是3,但假设Max(Length())可以是15到50(?)之间的任何值。
我需要的是
a)从上面的源列表中提取所有可能的6克(保存在某处?)b)了解在源列表中可以找到这些6克中的每一个的频率
a)“机械”,“机器”,“机械师”,“内衣”,“ inery”,“书呆子”,“ ery,B”,“ ry,Bi”……“ icensi”,“ censin”,“ ensing”,“ Eggs”
b)基本上,从产品名称为'%<6-gram>%'的产品中选择SELECT <6-gram> AS gram,COUNT(*)(或者,如果克存储在不同的表中,则可以使用JOIN)
我可以使用TJava组件和GlobalVar Set对象(如此处所示: http ://bekwam.blogspot.de/2012/08/iterating-over-java-collection-with.html)来实现,将一个String放在时间到TJava组件中,并制作一组所有可能的6克,可以随后进行处理。 (设置,因为我不需要重复)
有没有更简单,更好的方法来做到这一点? 最好没有TJava组件? 我99%的时间都使用Talend Open Studio进行数据集成,也许其他组件可以做到这一点? 如果没有更好的方法,我该如何重用其他Jobs&Projects中的代码/通过选择4克,5克,n克来使其更具动态性。
第一个问题在这里提出,请原谅我,如果它不够具体/英语不好/不够精确。 批评欢迎
选择来自德国的问候Stefan
没有使它可重用的组件,只需使用用户例程 ,该例程可从项目中的任何作业中看到。 另一种方法是将其打包到jar文件中,并在需要使用tLibraryLoad加载时加载 。 要使代码动态化,可以使用上下文变量并将其传递给您的方法,如下所示: MyStaticRoutine.getNgrams(input,n);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.