我有一个使用预定义单词列表的应用程序但我想扩展它以提供使用自己的自定义列表的选项。
不幸的是像SOWPODS(官方拼字游戏单词列表)这样的列表非常全面,包含我不想在屏幕上弹出的单词。
我可以很容易地获取禁止的单词列表,并将其作为一种脏话过滤器构建到我的应用程序中。这可能会让我的应用程序被Google Marketplace上可能存在的任何应用程序过滤所困,如果有的话,是否有办法绕过它? (加密,压缩等)
编辑:到目前为止,大多数答案都没有提到用户将提供列表的点,因此我无法控制其内容,需要在导入时或在使用时在我的应用中对其进行过滤。 (虽然如果应用程序“发誓”他们仍然会责怪我)
答案 0 :(得分:4)
有没有理由你不能在导入时根据“坏词”列表过滤单词,根据你之前的评论,听起来你已经编译了?
您还可以将该选项添加到首选项菜单中,以便在导入时不会过滤它们。
编辑:Google的政策不允许“过度亵渎”。如果被拒绝,我认为你可以提出上诉,认为它是一个反对亵渎的过滤器,你的应用程序将被接受。
答案 1 :(得分:2)
许多* nix发行版在纯文本文件/usr/share/dict/words
中包含单词列表(用于拼写检查等)。在我的OSX Leopard笔记本电脑上,列表似乎被删除了f字。在我的linux服务器上,f-words就在那里。用grep检查你的* nix发行版,看看你有什么,如果它不包含f-words,你可以将你的程序基于该单词列表。
答案 2 :(得分:2)
随机思考:为什么不为不允许的单词构建Bloom过滤器,并将过滤器中的位存储在程序的可执行文件而不是单词列表中?当然,你可能得到奇怪的误报,但在可能的字符串空间中,你的单词列表将过滤掉更多的位。
或者,如果您真正担心的是有人在您的应用程序上执行字符串转储,那么像base64这样的简单混淆应该可以解决问题。
答案 3 :(得分:1)
为什么不列出好词而不是坏词...更容易找到,并确保人们不会欺骗你的过滤器。但我确实认为用户并不喜欢过滤器。
答案 4 :(得分:1)
我认为禁止的单词列表会相对较小(15-20个单词?)。我还没有在Java中做过这样的事情,但是我认为当用户导入列表时,将该列表放入二叉搜索树,然后根据禁止的单词列表进行检查,删除任何匹配,这很简单条目。然后保存此筛选列表并使用它。
为了补充一点,我可能会有一个弹出对话框,或者可能是允许用户禁用过滤的首选项。总是更好地提供选项。 :)
答案 5 :(得分:1)
我评论道,但这确实是一个答案。
我认为您需要了解“垃圾邮件”和“内容过滤”的工作原理。
这些都不会阻止您的应用包含或发出任何类型的字词。要非常清楚,两者都不会在应用程序的二进制文件中搜索这些单词。
也就是说,您绝对可以使用安装程序保留一个单词列表,用于过滤掉显示给用户的内容,无论他们上传什么内容。
BTW,“垃圾邮件”过滤器可以阻止收到垃圾邮件电子邮件,从而阻止垃圾邮件。内容过滤器有两种方式。首先,让内容提供商明确说明其内容有利于哪些受众,然后通过过滤数据来过滤数据。这些不适用于应用程序;相反,他们处理网络浏览器收到的数据。答案 6 :(得分:0)
我会从标准单词列表开始。一个单独的程序会过滤掉任何不良单词并创建您自己修改的标准单词列表。
您的应用程序无需担心过滤掉任何内容。没有垃圾,没有垃圾。