繁体   English   中英

在2个输入文件上使用方法-2次打印多次-Java

[英]Using methods on 2 input files - 2nd is printing multiple times - Java

我有以下代码可读取文本,将其作为双字文件存储在哈希图中(以及其他按频率对它们进行排序并进行vv基本加法平滑的方法。

我对一种语言输入文件(英语)工作得很好,然后我想使用相同的方法将其扩展为第二种语言输入文件(日语-doens;不管我想是什么),但是日语bigram hashmap正在打印与diff连续3次。 价值观。

我尝试在输入文件中使用diff文本,确保文本中没有空格等。我还在代码的日语部分的某些位置放置了打印语句,以查看是否可以获得任何线索,但所有打印语句每次都在打印,因此如果它在某个特定位置循环,我将无法解决。

我已经用一个好的齿梳经历了它,但显然缺少了一些东西,并在这里慢慢发疯-任何帮助将不胜感激。 提前致谢...

package languagerecognition2;
import java.lang.String;
import java.io.InputStreamReader;
import java.util.*;
import java.util.Iterator;
import java.util.List.*;
import java.util.ArrayList;
import java.util.AbstractMap.*;
import java.lang.Object;
import java.io.*;
import java.util.Enumeration;
import java.util.Arrays;
import java.lang.Math;


public class Main {    /**

    public static void main(String[] args) {

//training English -----------------------------------------------------------------
         File file = new File("english1.txt");
        StringBuffer contents = new StringBuffer();
        BufferedReader reader = null;

        try
        {
            reader = new BufferedReader(new FileReader(file));
            String test = null;
            //test = reader.readLine();
            // repeat until all lines are read
            while ((test = reader.readLine()) != null)       

           {          
             test = test.toLowerCase();
             char[] charArrayEng = test.toCharArray();
             HashMap<String, Integer> hashMapEng = new HashMap<String, Integer>(bigrams(charArrayEng));


             LinkedHashMap<String, Integer> sortedListEng = new LinkedHashMap<String, Integer>(sort(hashMapEng));


             int sizeEng=sortedListEng.size();
             System.out.println("Total count of English bigrams is " + sizeEng);
             LinkedHashMap<String, Integer> smoothedListEng = new LinkedHashMap<String, Integer>(smooth(sortedListEng, sizeEng));
                        //print linkedHashMap to check values
                         Set set= smoothedListEng.entrySet();
                         Iterator iter = set.iterator (  ) ;
                         System.out.println("Beginning English");

                         while ( iter.hasNext())
                           {
                           Map.Entry entry =  ( Map.Entry ) iter.next (  ) ;
                           Object key = entry.getKey (  ) ;
                           Object value = entry.getValue (  ) ;

                           System.out.println( key+" : " +   value);

                          }
                        System.out.println("End English");
          }//end while

        }//end try
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (reader != null)
                {
                    reader.close();
                }
            } catch (IOException e)
            {
                e.printStackTrace();
            }
        }


//End training English-----------------------------------------------------------

//Training japanese--------------------------------------------------------------

        File file2 = new File("japanese1.txt");
        StringBuffer contents2 = new StringBuffer();
        BufferedReader reader2 = null;

        try
        {
            reader2 = new BufferedReader(new FileReader(file2));
            String test2 = null;

             //repeat until all lines are read
            while ((test2 = reader2.readLine()) != null)
           {

             test2 = test2.toLowerCase();
             char[] charArrayJap = test2.toCharArray();

             HashMap<String, Integer> hashMapJap = new HashMap<String, Integer>(bigrams(charArrayJap));
             //System.out.println( "bigrams stage");

             LinkedHashMap<String, Integer> sortedListJap = new LinkedHashMap<String, Integer>(sort(hashMapJap));
             //System.out.println( "sort stage");

             int sizeJap=sortedListJap.size();
             //System.out.println("Total count of Japanese bigrams is " + sizeJap);

             LinkedHashMap<String, Integer> smoothedListJap = new LinkedHashMap<String, Integer>(smooth(sortedListJap, sizeJap));
                    System.out.println( "smooth stage");
             //print linkedHashMap to check values

                        Set set2= smoothedListJap.entrySet();
                         Iterator iter2 = set2.iterator();
                         System.out.println("Beginning Japanese");

                         while ( iter2.hasNext())
                           {
                           Map.Entry entry2 =  ( Map.Entry ) iter2.next (  ) ;
                           Object key = entry2.getKey (  ) ;
                           Object value = entry2.getValue (  ) ;

                           System.out.println( key+" : " +   value);
                           }//end while
                        System.out.println("End Japanese");
             }//end while


        }//end try
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (reader2 != null)
                {
                    reader2.close();
                }
            } catch (IOException e)
            {
                e.printStackTrace();
            }

        }

//end training Japanese---------------------------------------------------------


} //end main (inner)

我认为这是输入文件问题,所以我现在已经解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM