2010-04-10 4 views

답변

0

당신은 클래스가있는 경우 : 다음

public Treebank { 
    public String conjugate(String base, String formTag); 

    ... 
} 

: 당신이 Treebank 클래스가없는 경우

String conjugated = treebank.conjugate(base, formTag); 

가 조금 다음과 같습니다

public Treebank { 
    private Map<String, Map<String, String>> m_map = new HashMap<String, Map<String, String>>(); 

    public Treebank() { 
     populate(); 
    } 

    public String conjugate(String base, String formTag) { 
     return m_map.get(base, formTag); 
    } 

    private void populate() { 
     InputStream istream = openDataFile(); 

     try { 
      for (Record record = readRecord(istream); record !== null; record = readRecord(istream)) { 

       // Add the entry 
       Map<String, String> entry = m_map.get(record.base); 

       if (entry == null) 
        entry = new HashMap<String, String>(); 

       entry.put(record.formTag, record.conjugatedForm); 
       m_map.put(record.base, entry); 
      } 
     } 
     finally { 
      closeDataFile(istream); 
     } 
    } 

    // Data management - to be implemented. 
    private InputStream openDataFile()      { ... } 
    private Record  readRecord(InputStream istream) { ... } 
    private void  closeDataFile(InputStream istream) { ... } 

    private static class Record { 
     String base; 
     String formTag; 
     String conjugatedForm; 
    } 
} 

을 더 나은 해결책은 데이터 파일 대신 데이터베이스를 사용하는 것입니다. 또한 데이터 액세스 코드를 데이터 액세스 객체로 리팩토링합니다.

0

여기서 원하는 것은 용어 자체를 통해 하나의 키로 색인 가능하고 다른 키로 PTTS 코드 (CC, TO, VBD)를 포함하는 희소 배열을 만드는 것입니다.

+0

이러한 기능을 가진 라이브러리가 있습니까? 이미 누군가가 할 수 있다고 생각합니다. – Fluffy

+2

그것은 단지 데이터 세트입니다. 인터페이스를 많이 필요로하지 않습니다. 라이브러리를 만드는 것은 매우 쉽습니다. 게터와 세터 이외에 할 일이별로 없으며 데이터 그 자체가 모든 올바른 답을 가지고 있습니다. 올바른 답변은 작업 솔루션이 충분히 필요하다는 사람이 한 번 이상 입력해야합니다. 많은 것들이 아직 라이브러리가 아닙니다. 이것은 새로운 것들이 시작되는 방법입니다. 스파 스 배열 데이터 집합을 입력하는 첫 번째 단계를 수행하고이를 공유하면 다른 사람이 미래에 사용할 다른 "라이브러리"로 만들 수 있습니다. 이것은 오픈 소스 프로젝트가 탄생 한 방식입니다. -pbr – pbr

관련 문제