拍照搜題功能服務端(php)開發 simhash

2021-09-11 01:12:07 字數 2026 閱讀 6710

後來發現很多關於simhash的文章,其中一篇:simhash演算法原理及實現。用簡單的話解釋一下simhash:這個演算法可以把任何文章都雜湊成乙個64位的二進位製碼,語義越相近的文章,獲得的二進位製碼的漢明距離越小。如果感興趣,大家可以深入研究一下。

基於這個理論,經過大量嘗試(其中不乏開源**,在此非常感謝),終於完成了下面的類。simhash第一步首先要分詞,故這個類用到了php的scws這個拓展。

如果想要了解scws怎樣安裝,點這

<?php

class glo_simhash ', '\\',

'|', '+', '=', '_', '^',

'$', '~', '`', '"', '"',

';', '.'

);return str_replace($dbc, $sbc, $str);

}function hashcode($str)

function hashcode64($str) );

}$hash = $hash & 0x7fffffff;

$hash = decbin(bcmul($hash,$hash));

$hash = str_repeat('0',64 - strlen($hash)).$hash;

return $hash;

}//採用scws分詞

function getsimhash($text)','(',')'];

$so->send_text($str);

$keylist = array();

while($words = $so->get_result())

else

}$keylist = $hash;}}

}$fincode = '';

for($i=0;$i<64;$i++)

foreach($keylist as $key)

if($code>0) else

}return $fincode;

}}

建立倒排索引資料表

create table `simhash_syintelligence` (

`id` bigint(20) unsigned not null auto_increment,

`hashcode16` char(16) not null default '' comment '16位2進製hash',

`dp` text not null comment '倒排字段 內容:(題目id:hashcode位置;題目id:hashcode位置)',

primary key (`id`)

) engine=innodb auto_increment=1 default charset=utf8

以上是猜想,基於ocr準確識別的情況,但聯調時發現,**識別不是很準確,經常出現類似「問」識別為「間」的情況。simhash是基於語義分析的,我上面的方案必須保證分割的4塊中其中一塊完全相同,錯一字,漢明距離就變大好多,導致可能匹配不到。還有一種情況是,會返回毫不相關的文章,因為這樣做返回文章的漢明距離為0-48,於是又改變了策略,調整表的設計:

create table `simhash_syintelligence` (

`id` bigint(20) unsigned not null auto_increment,

`ques_id` int(10) not null default '0' comment '題目id',

`hashcode64` char(64) not null default '' comment '64位2進製hash',

primary key (`id`),

key `hashcode64` (`hashcode64`)

) engine=innodb auto_increment=1 default charset=utf8

算是一種思路,但是實際應用中發現雜湊碰撞的概率挺高的,搜尋一段英文,完全沒有聯絡的中文被搜出來的,效果不太理性;

可以換成es全文搜尋引擎做

unity 開發手機端拍照功能

話不多說。直接上 面板我這裡使用的事是rawimage 拍攝前後攝像頭之前一定要呼叫stop 有任何問題可以新增 qq群 207019099 public string devicename 接收返回的資料 public webcamtexture tex public texture2d tex ...

php服務端setcookie 原理

1 什麼是 cookie?cookie 常用於識別使用者。cookie 是伺服器留在使用者計算機中的小檔案。每當相同的計算機通過瀏覽器請求頁面時,它同時會傳送 cookie。通過 php,您能夠建立並取回 cookie 的值。2 如何取回 cookie 的值?php 的 cookie 變數用於取回 ...

PHP服務端環境搭建

1.php服務端環境安裝套件xampp apach mysql php直譯器 f mydoc檔案 重要 dl 學習 download重要資源 apache伺服器元件 安裝 4.修改瀏覽器中預設出現的dashboard資料夾 解決辦法 將htdocs下所有檔案刪除,將不會自動跳轉 至此,服務端環境配置...