使用人类语言字典动态填充哈希图以进行文本分析

Smatthewenglish

我正在编写一个软件项目,以人类语言输入文本并确定它所使用的语言。

我的想法是,我将字典存储在哈希图中,以单词为键,布尔值作为值。

如果文档中有该单词,我将把布尔值调高。

现在,我正在尝试一种阅读这些词典并将它们放入哈希表的好方法,我现在的做法非常幼稚且看起来笨拙,是否有更好的方法来填充这些哈希图?

而且,这些词典非常庞大。也许这不是执行此操作的最佳方法,即像这样连续地填充它们。

我认为一次只考虑一个词典,然后创建一个分数,在该文档中注册的输入文本中有多少个单词,保存该单词,然后处理下一个词典可能会更好。这样可以节省RAM,不是吗?那是一个好的解决方案吗?

到目前为止的代码如下所示:

static HashMap<String, Boolean>  de_map = new HashMap<String, Boolean>();
static HashMap<String, Boolean>  fr_map = new HashMap<String, Boolean>();
static HashMap<String, Boolean>  ru_map = new HashMap<String, Boolean>();
static HashMap<String, Boolean> eng_map = new HashMap<String, Boolean>();

public static void main(String[] args) throws IOException
{
    ArrayList<File> sub_dirs = new ArrayList<File>();

    final String filePath = "/home/matthias/Desktop/language_detective/word_lists_2";

    listf( filePath, sub_dirs );

    for(File dir : sub_dirs)
    {
        String word_holding_directory_path = dir.toString().toLowerCase();



        BufferedReader br = new BufferedReader(new FileReader( dir ));
        String line = null;
        while ((line = br.readLine()) != null)
        {
            //System.out.println(line);
            if(word_holding_directory_path.toLowerCase().contains("/de/") )
            {
                de_map.put(line, false);    
            }
            if(word_holding_directory_path.toLowerCase().contains("/ru/") )
            {
                ru_map.put(line, false);
            }
            if(word_holding_directory_path.toLowerCase().contains("/fr/") )
            {
                fr_map.put(line, false);
            }
            if(word_holding_directory_path.toLowerCase().contains("/eng/") )
            {
                eng_map.put(line, false);
            }
        }
    }

因此,我正在寻找有关如何一次填充它们的建议,以及关于这是否是一种好的方法的意见,或者关于实现这一目标的可能更好的方法的建议。

完整的程序可以在我的GitHub页面上找到

27

尼基塔·阿斯特拉坎捷夫(Nikita Astrakhantev)

语言识别的任务已得到深入研究,并且有很多优秀的库。对于Java,请尝试TIKAJava语言检测库(它们的报告“ 53种语言的精度提高了99%”)或TextCatLingPipe-我建议从第一点开始,它似乎是最详细的教程。

如果您的任务对于现有的库而言过于具体(尽管我怀疑是这种情况),请参考此调查文件并采用最接近的技术。

如果您确实想重新发明轮子,例如出于自学目的,请注意,识别可以视为文本分类的一种特殊情况,请阅读此基本教程进行文本分类

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Python 进行文本分类

来自分类Dev

使用 Keras 进行文本分类

来自分类Dev

在R中使用LDA和tm进行文本分析

来自分类Dev

使用brain.js神经网络进行文本分析

来自分类Dev

使用Rapidminer对imdb电影评论进行文本分析

来自分类Dev

在R中使用LDA和tm进行文本分析

来自分类Dev

如何在Spark中进行文本分析

来自分类Dev

使用预制字典进行文本分类的SVM特征向量表示

来自分类Dev

使用预制字典进行文本分类的SVM特征向量表示

来自分类Dev

使用Spark ML进行文本分类

来自分类Dev

如何使用Accord.Net进行文本分类?

来自分类Dev

如何使用GPT 3进行文本分类?

来自分类Dev

使用朴素贝叶斯进行文本分类

来自分类Dev

使用哈希图进行递归

来自分类Dev

如何将包含多个“文档”的XML文件读入R进行文本分析?

来自分类Dev

对传入消息执行文本分析

来自分类Dev

如何将多个 pdf 转换为一个语料库以在 R 中进行文本分析?

来自分类Dev

如何将一组 Unicode .txt 转换为 ANSI 以在 R 中进行文本分析

来自分类Dev

使用R和SVM进行文本分类。矩阵功能

来自分类Dev

Scikit学习-如何使用SVM和随机森林进行文本分类?

来自分类Dev

使用TF-IDF分数进行文本分类的KNN

来自分类Dev

使用Keras在LSTM中获取单词进行文本分类的可能性

来自分类Dev

使用我自己的数据进行文本分类的Tensorflow错误

来自分类Dev

用R文本分析进行词干分析

来自分类Dev

使用* .dic * .aff使用Python进行形态学文本分析

来自分类Dev

如何使用 tm 包进行希伯来语或阿拉伯语文本分析

来自分类Dev

编码数据标签以进行文本分类

来自分类Dev

在查询中使用人类可读的常量

来自分类Dev

在查询中使用人类可读的常量

Related 相关文章

热门标签

归档