public static function _getString($fileName)
 {
     $fmis = new FileMappedInputStream($fileName);
     $str = $fmis->getString($fmis->size() / 2);
     $fmis->close();
     return $str;
 }
Esempio n. 2
0
 public function __construct($dataDir)
 {
     $fmis = new FileMappedInputStream($dataDir . "/matrix.bin");
     $this->leftSize = $fmis->getInt();
     $this->rightSize = $fmis->getInt();
     $this->matrix = $fmis->getShortArrayInstance($this->leftSize * $this->rightSize);
     $fmis->close();
 }
Esempio n. 3
0
 public function __construct($filePath)
 {
     $fmis = new FileMappedInputStream($filePath);
     $nodeSz = $fmis->getInt();
     $tindSz = $fmis->getInt();
     $tailSz = $fmis->getInt();
     $this->keySetSize = $tindSz;
     $this->begs = $fmis->getIntArrayInstance($tindSz);
     $this->base = $fmis->getIntArrayInstance($nodeSz);
     $this->lens = $fmis->getShortArrayInstance($tindSz);
     $this->chck = $fmis->getCharArrayInstance($nodeSz);
     $this->tail = array_values(unpack("S*", $fmis->getString($tailSz)));
     $fmis->close();
 }
Esempio n. 4
0
 private function readCategorys($dataDir)
 {
     $data = FileMappedInputStream::_getIntArray($dataDir . "/char.category");
     $size = count($data) / 4;
     $ary = array();
     for ($i = 0; $i < $size; $i++) {
         $ary[$i] = new Category($data[$i * 4], $data[$i * 4 + 1], $data[$i * 4 + 2] === 1, $data[$i * 4 + 3] === 1);
     }
     return $ary;
 }
Esempio n. 5
0
 public function __construct($dataDir)
 {
     $this->trie = new Searcher($dataDir . "/word2id");
     $this->data = FileMappedInputStream::_getString($dataDir . "/word.dat");
     $this->indices = FileMappedInputStream::_getIntArray($dataDir . "/word.ary.idx");
     $fmis = new FileMappedInputStream($dataDir . "/word.inf");
     $wordCount = $fmis->size() / (4 + 2 + 2 + 2);
     $this->dataOffsets = $fmis->getIntArrayInstance($wordCount);
     //単語の素性データの開始位置
     $this->leftIds = $fmis->getShortArrayInstance($wordCount);
     //単語の左文脈ID
     $this->rightIds = $fmis->getShortArrayInstance($wordCount);
     //単語の右文脈ID
     $this->costs = $fmis->getShortArrayInstance($wordCount);
     //単語のコスト
     $fmis->close();
 }