希望在JasperServer中自动创建域.域是用于创建临时报告的数据的"视图".列的名称必须以人类可读的方式呈现给用户.
理论上,组织可以在报告中包含2,000多种可能的数据.数据来自非人类友好的名称,例如:
payperiodmatchcode labordistributioncodedesc依赖关系actionendoption actionendoptiondesc addresstype addresstypedesc historytype psaddresstype rolename bankaccountstatus bankaccountstatusdesc bankaccounttype bankaccounttypedesc beneficiaryamount beneficiaryclass beneficiarypercent benefitsubclass beneficiaryclass beneficiaryclassdesc benefitactioncode benefitactioncodedesc benefitagecontrol benefitagecontroldesc ageconrolagelimit ageconrolnotperiperiod
你会如何自动将这些名称更改为:
使用谷歌你的意思是引擎,但我认为它违反了他们的服务条款:
lynx -dump «url» | grep "Did you mean" | awk ...
任何语言都可以,但像Perl这样的文本解析器可能非常适合.(列名仅限英文.)
打破单词的目标不是100%完美; 以下结果是可以接受的:
无论如何,人类都需要仔细检查结果并纠正许多结果.将一组2,000个结果减少到600次编辑将节省大量时间.要注意一些具有多种可能性的病例(例如,治疗师名称),要完全忽略这一点.
我想知道如果删除空格,你会如何用英语(或其他西方语言)标记字符串?
这个问题的灵感来自于村上小说" 舞蹈之舞 "中的" 羊人"角色
在小说中,羊人被翻译为:
"像我们一样,我们只能看到它们.试试看,你们是什么意思,"羊人说道."但是我们不能独自一人.你们工作得很好."
因此,保留了一些标点符号,但不是全部.足以让人阅读,但有点武断.
为此构建解析器的策略是什么?字母,音节计数,条件语法,前瞻/后退正则表达式等的常见组合?
具体来说,python-wise,你将如何构建一个(宽容的)翻译流程?没有要求完整的答案,更多的是你的思维过程将如何解决问题.
我以轻浮的方式问这个问题,但我认为这个问题可能会得到一些有趣的(nlp/crypto/frequency/social)答案.谢谢!