我得到了一组包含连接单词的字符串,如下所示:
longstring (two English words)
googlecloud (a name and an English word)
当我在 Google 中输入这些术语时,它会识别出带有“您是说吗?”的单词。 (“长字符串”,“谷歌云”)。我的应用程序中需要类似的功能。
我研究了 Python 和 ElasticSearch 提供的选项。我发现的所有标记化示例都是基于空格、大写字母、特殊字符等。
如果字符串是英文(但它们可能包含名称),我有什么选择?它不必采用特定的技术。
我可以使用 Google BigQuery 完成此任务吗?
最佳答案
您也可以推出自己的实现吗?我正在考虑这样的算法:
- 获取一本包含您想要区分的所有单词的字典
- 构建一个允许快速查找的数据结构(我正在考虑
trie
) - 尝试找到第一个单词(从一个字符开始并增加直到找到一个单词);如果找到,则使用剩余的字符串并执行相同的操作,直到没有留下任何内容。如果没有找到任何内容,则回溯并扩展前一个单词。
如果字符串可以分割,应该没问题,但如果字符串乱码,会尝试所有可能性。当然,这取决于您的字典有多大。但这只是一个快速的想法,也许会有帮助。
关于python - 对连接的字符串进行标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39609925/