PHP实现牛津英汉词典

PHP实现电子词典(附完整源码) 阅读详情

《-----------------------------前段代码---------------------------------》

进入默认页面,会弹出一个适当大小的窗口:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function openWindow(newWindow)
{
	window.open(newWindow, newWindow,"height=460px, width=760px, top=100px; left=350px, toolbal=no, menubar=no, scrollbars=no, resizeable=no, location=no, status=no");
}

window.onload=openWindow("view.html");
</script>
</head>
<body></body>
</html>
弹出的窗口如下:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<script type="text/javascript">

//创建XHR
function getXMLHttpRequest()
{
	var xmlhttp=null;
	if(window.ActiveXObject)
	{
		xmlhttp = new ActiveXObject("Microsoft.XMLHttp");
	}
	else
	{
		xmlhttp=new XMLHttpRequest();
	}
	return xmlhttp;
}
//发送AJAX查询
function query()
{
	var url="/ciba/niujin/process.php";
	var data="?enword="+$('enWord').value+"&rand="+Math.random();	
	var en=$('enWord').value;
	$('enWord').value="";
	xmlhttp=getXMLHttpRequest();
	 if (xmlhttp)
	 {
		
		xmlhttp.open("get", url+data,true);
		
		
		 xmlhttp.onreadystatechange=function()
		{
			//window.alert(xmlhttp.readyState);
			if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
				var res=xmlhttp.responseText;
				//res=eval("("+res+")");
				//window.alert(res);
				$("chWord").innerHTML= en+": "+res;   
			}
		} 
		xmlhttp.send(null); 
	 }
}
//捕捉回车键,如果是,进行查询
function sendQuery(event)
{
	if(event.keyCode==13)
	{
		query();
		return false;
	}
}
//清空输入框
function clearContent()
{
	$("enWord").value="";
	return false;
}
function $(id)
{
	return document.getElementById(id);
}
</script>

<style rel="stylesheet" type="text/css">
#enWord{
		width:650px;
		height:40px;
		border:2px solid gray;
		margin-top:10px;
		}
#sendButton{
			width:65px;
			height:35px;
			}
#chWord{position:relative;
		left:10px;
		top:50px;
		width:600px;
		font-size:20px;
		color:red;}
</style>
<head>

<body>

<img src="logo.jpg" /><br />
<input type="text"  value="请输入词条" id="enWord"  onkeydown="sendQuery(event);" onclick="clearContent();" />
<input type="button" id="sendButton" value="查询" onclick="query();" /><br />

<div id="chWord"><div>
</body>
</html>


<-------------------------------处理过程如下------------------------------------------------->

<?php
require_once "storeWord.class.php";
require_once "filterWord.tool.php";
header("content-type: plain/text; charset=utf-8");


if(!empty($_GET['enword']))
{
$en=$_GET['enword'];
$en=formatWord($en);//格式化输入
$redis=new StoreWord();
$ch=$redis->getWord($en); 
$res="<res><en>$en</en><ch>$ch</ch></res>";
file_put_contents('aword.txt', $res."\r\n",FILE_APPEND);
//ob_clean();
echo $ch;
}
else
{
file_put_contents('aword.txt', "receive NON data \r\n",FILE_APPEND);
}

------------------------------格式化输入的工具函数如下:

<?php
function formatWord($en)
{
		$en=trim($en);

			if(preg_match('#[\x{4e00}-\x{9fa5},\)\.\(]+#u', $en))
			{
				//过滤掉中文,同时提取其中的英文字符
				 if(preg_match('#\b[a-z]+\b#i', $en, $res))
				{
					if(strlen($res[0])>20)
					{
						//echo "字符过长<br />";
						return strtolower(substr($res[0], 0,20));
					}
					return strtolower($res[0]);
				}
				else
				{
					return "";
				}
			}
			else if(preg_match('#\s+#', $en))
			{
					//$en=explode(' ', $en);
				//echo "含有空格<br />";
				$res=null;
				if(preg_match('#[a-z]+#i', $en, $res))
				{
					if(strlen($res[0])>20)
					{
						//echo "字符过长<br />";
						return strtolower(substr($res[0], 0,20));
					}
					return strtolower($res[0]);
				}
			}
			else if(preg_match('#[—_\+\?\*\^\$\#\%\&\/\\,\.!@=\`\'\"\"""]#',$en, $res))
			{
				//
				//echo '含有非法字符<br />';
				if(preg_match('#[a-z]+#i', $en, $res))
				{
					if(strlen($res[0])>20)
					{
						//echo "字符过长<br />";
						return strtolower(substr($res[0], 0,20));
					}
					return strtolower($res[0]);
				}
			}
	
			else if(strlen($en)>20)
			{
				//echo "字符过长<br />";
				return strtolower(substr($en, 0,20));
			}
			else 
			{
				return $en;
			}
		
}
<------------------------------------后端实现如下---------------------------------------------->

1.  依次读取给定目录下的词条

2. 对词条进行分词和格式化

3. 按照从A-Z的分类,依次写入redis缓存服务器的【a-z】:OFX哈希表,所以总共有26个哈希表

4. 对A-Z目录下的词条进行写入

【读取目录】

<?php
class Dir
{
	private $fileList=array();
	
	public function __construct($path)
	{
		$this->readFileList($path);
	}

	function readFileList($path)
	{
		$path=$this->transPathSep($path);
		$encode=mb_detect_encoding($path, array('GB2312','GBK','UTF-8','BIG5','LATIN1'));
		$path=mb_convert_encoding($path, 'GB2312', $encode);
		//用于路径读取时用UTF编码会失败,所以先转成GB2312
		if ($fd=opendir($path))
		{
			while($fileName=readdir($fd))
			{
				//如果不是当前目录和上级目录
				if($fileName !="." && $fileName !="..")
				{
					//如果是一个文件
					if(is_file($path.'/'.$fileName))
					{	
						$extName=pathinfo($path."/".$fileName)["extension"];
						if(strtolower($extName)=='txt')
						{
							//上面把路径转成了GB2312,这里再转换会UTF-8编码
							$temp=mb_convert_encoding($path.'/'.$fileName, 'UTF-8', $encode);
							$groupName=$this->groupFile($temp);
							$this->fileList[$groupName][]=$temp;
						}
					}
					//如果是一个目录,则继续递归读取
					else if(is_dir($path.'/'.$fileName))
					{
						$this->readFileList($path.'/'.$fileName);
					}
				}	
			
			}

		}
		@closedir($fd);
		
	}
	
	public function getFileList()
	{
		return $this->fileList;
	}
	//提取单词分类,比如从A-Z
	private function groupFile($filename)
	{
		$pos=strripos($filename, '/');
		$word=strtolower(substr($filename, $pos+1, 1));
		return $word;
	}
	//转换window环境下路径的默认分隔符\为PHP识别更好的/
	private function transPathSep($path)
	{
		$system=$_SERVER["SERVER_SOFTWARE"];
		$pat="#\((.*?)\)#";
		$sysVer=null;
		if(preg_match($pat,$system,$match))
		{
			$sysVer=$match[1];
		}
		else
		{
			die("匹配系统类型失败<br />");
		}
		if(strtolower($sysVer)=="win32")
		{
			$realPath=str_replace("\\","/",$path);
			return $realPath;
		}
	}
	
}

/* $dir=new Dir('E:\CodeEdit\php\ciba\TXT格式的牛津电子词典\牛津电子词典');
$list=$dir->getFileList();
echo "<pre>";
print_r($list); 
echo "</pre>";  */

?>

【分词】

<?php
require_once "formatWord.class.php";
require_once "formatTrans.class.php";
class Oxford
{
	private $OfileName=null;
	private $ODicString='';
	private $ODicUnit=array();
	private $ODicWord=array();
	private $ODicTrans=array();
	private $ODicEncoding=null;
	
	private $word=null;
	private $trans=null;
	
	
	public function __construct($fname)
	{
		$encode=mb_detect_encoding($fname, array('GB2312','GBK','UTF-8','BIG5','LATIN1'));
		$this->OfileName=mb_convert_encoding(trim($fname), 'GB2312', $encode);
		
		$this->word=new FormatWord();
		$this->trans=new FormatTrans();

		$temp=file_get_contents($this->OfileName, false, null, 0, 64);
		$this->ODicEncoding=mb_detect_encoding($temp, array('GB2312','GBK','UTF-8','BIG5','LATIN1'));
		
	}
	
	//读取文件并保存到$OfileName中
	protected function readDicFromFile()
	{
		if(!file_exists($this->OfileName))
		{
			die('文件不存在'.__LINE__);
		}
		if(!is_readable($this->OfileName))
		{
			die('文件不可读'.__LINE__);
		}
		$fp=fopen($this->OfileName, 'r') or die('打开文件失败'.__LINE__);
		
		while(!feof($fp))
		{
			$this->ODicString .= fread($fp, 1024);
		}
		fclose($fp);
		if(strtoupper($this->ODicEncoding)!='UTF-8')
		{
			$this->ODicString=mb_convert_encoding($this->ODicString, 'UTF-8', $this->ODicEncoding);
		}
		
	}
	//根据音标进行分割并保存到ODicUnit单元中,保存为数组
	protected  function splitWithVoice($pattern='#(?<=\r\n)/[^/]+?/(?=\s)#ui')
	{
		$this->ODicUnit=preg_split($pattern, $this->ODicString);
	}
	//从第二个到倒数第二个单元里面,保存的都是上一个单词的翻译,和下一个单词
	//根据音标分割成单元后,第一个单元里保存的是第一个单词,最后一个单元里则保存的是最后一个翻译
	//并且单词是结尾,单词和上一个单词的翻译之间肯定是存在回车换行符的,根据这个特征,提取出单词
	//所以依次从第二个单元到倒数第二个单元里,根据特征提取出单词。
	protected  function grepWord()
	{
		//提取首单词
		$this->ODicWord[]=trim($this->ODicUnit[0]);
		
		$pat='#\r\n(.*)(?:\r\n)$#i'; //提取单词
		$len=count($this->ODicUnit);
		
		for($i=1; $i<$len-1; $i++)
		{
			if(preg_match($pat, $this->ODicUnit[$i], $match))
			{
				$this->ODicWord[]=$match[1];
			}
			else
			{
				die('匹配单词失败'.__LINE__."<br />");
			}
		}
	}
	
	//从第二个到倒数第二个单元里面,保存的都是上一个单词的翻译,和下一个单词
	//根据音标分割成单元后,第一个单元里保存的是第一个单词,最后一个单元里则保存的是最后一个翻译
	//在每个单元中反向搜索单词第一次出现的位置,根据这个位置可以提取出上一个单词的翻译
	protected  function grepTrans()
	{
		$len=count($this->ODicUnit);
		for($i=1; $i<$len-1; $i++)
		{
			if($pos=strripos($this->ODicUnit[$i], $this->ODicWord[$i]))
			{
				array_push($this->ODicTrans,$this->trans->getTrans(substr($this->ODicUnit[$i], 0, $pos)));
			}
			else
			{
				die("此方法不可行".__LINE__."<br />");
			}
			
		}
		array_push($this->ODicTrans,$this->trans->getTrans($this->ODicUnit[$len-1]));
	}

	public function oxf()
	{
		$this->readDicFromFile();
		$this->splitWithVoice();
		$this->grepWord();
		$this->grepTrans();
		
		
		$len=count($this->ODicWord);
		$oxfWord=array();
		for($i=0; $i<$len; $i++)
		{
			$oxfWord[$this->ODicWord[$i]] = $this->ODicTrans[$i];
			//echo $this->ODicWord[$i]."<br />";
		}
		return $oxfWord;
		//return $this->ODicUnit;
		
	}

}//class Oxford

/* $oxf=new Oxford(' E:/CodeEdit/php/ciba/TXT格式的牛津电子词典/牛津电子词典/G/G-b,c,d,e.txt  ');
$res=$oxf->oxf();
//$result=$oxf->returnWord();
 echo "<pre>";
print_r($res);
echo "</pre>";  */
?>


【格式化词条】

<?php  
class FormatWord
{
	//过滤逗号
	private function filterComma($str)
	{
		if($pos=strpos($str, ','))
		{
			$leftWord=trim(substr($str, 0, $pos));
			$rightWord=trim(substr($str, $pos+2, strlen($str)));
			if(strlen($leftWord)==1 && strlen($leftWord)<strlen($rightWord))
			{
				return $rightWord;
			}
			else
			{
				return $leftWord;
			}
		}
		else
		{
			return $str;
		}
	}

	//当单词的左边有左括号时,这是二种情况
	private function filterBrackets($str)
	{
		if(($pos01=strpos($str,'('))&& ($pos02=strpos($str, ')')))
		{
			$leftWord=substr($str, 0, $pos01);
			$rightWord=substr($str, $pos01+1, $pos02-$pos01-1);
			if(strlen($leftWord)==1 && strlen($rightWord)>strlen($leftWord))
			{
				return $rightWord;
			}
			else
			{
				return $leftWord;
			}
		}
		else
		{
			return $str;
		}			
	}
	//当单词的左边是空格时,,这是第三种情况
	private function filterEmpty($str)
	{
		if($pos=strpos($str, ' '))
		{
				$leftWord=trim(substr($str, 0, $pos));
				$rightWord=trim(substr($str, $pos+1, strlen($str)));
				if(strlen($leftWord)==1 && strlen($leftWord)<strlen($rightWord))
				{
					return $rightWord;
				}
				else
				{
					return $leftWord;
				}
				
		}
		else
		{
			return $str;
		}
	}
	private function filterQuote($str)
	{
		if($pos=strpos($str, '\''))
		{
				$leftWord=trim(substr($str, 0, $pos));
				$rightWord=trim(substr($str, $pos+1, strlen($str)));
				if(strlen($leftWord)==1 && strlen($leftWord)<strlen($rightWord))
				{
					return $rightWord;
				}
				else
				{
					return $leftWord;
				}
				
		}
		else
		{
			return $str;
		}
	}
//提取单词
	public function filterWord($str)
	{
		$pat='#[a-z]+#ui';
		if(preg_match($pat, $str, $match))
		{
			return trim($match[0]);
		}
		else
		{
			die("无法提取单词");
		}
	}
	//提取单词右边一位的字符
	function detectDelimit($str)
	{
		$word=$this->filterWord($str);
		$len=strlen($word);
		$delimit=substr($str, $len,1);
		return $delimit;
	}
	public function getCommonWord($str)
	{
		$sign=array(',', '(', ' ','\'');
		$delimit=$this->detectDelimit($str);
		//echo $delimit;exit();
		if(in_array($delimit, $sign))
		{
			if($delimit==',')
			{
				$word=$this->filterComma($str);
				return $word;
			}
			else if($delimit=='(') 
			{
				$word=$this->filterBrackets($str);
				return $word;
			}
			else if($delimit==' ')
			{
				$word=$this->filterEmpty($str); 
				return $word;
			}
			else if($delimit=='\'')
			{
				$word=$this->filterQuote($str);
				return $word;
			}
			else 
			{
				$word=$this->filterWord($str);
				return $word;
			}
		}
		else
		{
			return $this->filterWord($str);
		}
		
		
	}
	public function getWord($str)
	{
		$word=$this->getCommonWord($str);
		$pat='#[a-z]+#ui';
		if(preg_match($pat, $word, $match))
		{
			return $match[0];
		}
		else
		{
			die("获取最终的单词失败".__LINE__."<br />");
		}
	}
	public function grepWordFromContent($str)
	{
		$pos=strpos($str, '(');
		return trim(substr($str, 0, $pos));
	}
	
	public function getFirstWord($str)
	{
		if(preg_match('#(\r\n)#mi', $str, $arr))
		{
			if(preg_match('#\r\n(.*)$#i',$str, $res))
			{
				return $this->getWord($res[1]);
			}
		}
		else
		{
			return $this->getWord($str);
		}
	}
}
/* $str=<<<str
agr(o)-\r\ncomb form 构词成分 of soil 泥土的; 土壤的: agriculture * agronomy.\r\nanthrop(o)-\r\ncomb form 构词成分 of human beings 人; 人类: anthropomorphic\r\nc/o
str;

$word=new FormatWord();
echo $word->getFirstWord($str); */

?>

【格式化翻译】

<?php
class FormatTrans
{
	public function getTrans($str)
	{
		$pat='#\s(\d{1,2})\s#';
		if(preg_match_all($pat, $str))
		{
			$res=preg_split($pat, $str);
			$len=count($res);
			$trans='';
			for($i=1; $i<=$len; $i++)
			{
				 $trans .="<b>".$i."</b>".'.   '.$res[$i-1]."<br />";
			}
			return $trans;
		}
		else
		{
			return $str;
		}
	}
}
【redis服务器的相关设置】

<?php
class StoreWord
{
	private $redis=null;
	
	public function __construct()
	{
		$this->redis=new Redis();
		$this->redis->connect('127.0.0.1', 6379);
		$this->redis->auth('caifangjie');
	}
	
	public function setWord($wordZone,$word)
	{
		$hName=$wordZone.':OFX';
		foreach ($word as $key => $value)
		{
			$this->redis->hSetNx($hName, $key, $value);
			//echo $key.'------'.$value; exit();
		}
	}
	public function getWord($key)
	{
		$wordZone=null;
		if (preg_match('#^[a-z]#i', $key, $word))
		{
			$wordZone=strtolower($word[0]);
		}
		else
		{
			die('匹配单词分组失败,并返回');
		}
		
		$hName=$wordZone.':OFX';
		if($this->redis->hExists($hName, $key))
		{
			return $this->redis->hGet($hName, $key);
		}
		else
		{
			die("找不到你需要的单词<br >");
		}
	}
	
	public function getAllWord($wordZone)
	{
		$hName=$wordZone.':OFX';
		return $this->redis->hKeys($hName);
	}
	public function getNumWord($wordZone)
	{
		$hName=$wordZone.':OFX';
		return $this->redis->hLen($hName);
	}
}
/* 
$redis=new StoreWord();
$redis->setWord('a', array('all'=>'全部,所有', 'about'=>'关于','above'=>'上面,上部'));
echo $redis->getWord('a', 'about'); */
?>
【依次写入redis】

<?php
require_once "readDic.class.php";
require_once "readDir.class.php";
require_once "storeWord.class.php";

class Server
{
	private $redis=null;
	
	public function __construct($dir)
	{
		$this->redis=new StoreWord();
		$this->parseDic($dir);
	}
	
	public function getDir($path)
	{
		 $dir=new Dir($path);
		 return $dir->getFileList();
	}
	
	public function parseDic($dir)
	{
		$path=$this->getDir($dir);
		foreach ($path as $wordZone => $dir)
		{
				foreach ($dir as $dicPath)
				{
					$oxf=new Oxford($dicPath);
					$res=$oxf->oxf();
					$this->redis->setWord($wordZone, $res);
					ob_start();
					echo '单词库入库:  '. $dicPath. "<br />";
					ob_flush();
					flush();
					sleep(2);
				}
				echo '<font color="red">'.$wordZone.'分类存储完毕</font><br />';
			
		}
		die('<font color="blue">所有分类存储完毕</font><br />');
	}

}
set_time_limit(1000);
$ser=new Server('E:\CodeEdit\php\ciba\TXT格式的牛津电子词典\牛津电子词典');

?>



牛津词典的TXT词库链接如下:  点击打开链接

源代码如下:点击打开链接

PHP实现words search单词搜索(附完整源码) 阅读详情

相关推荐

9om PHP Dict(英汉双解字典) v1.0 zend版

9om PHP Dict v1.0 英汉双解字典zend版本

中英词典+mysql_php+mysql实现英汉查询词典的功能

create database worddb;2.创建表create table words(id int auto_increment primary key,en_word varchar(128) not null,ch_word varchar(256) not null);3.插入数据(只是举个例子,不必太计较单词是不是这个意思,英语很渣,又懒得查)insert into words(e...

weixin_36098237的博客 439

十万词汇英汉词典词库JSON格式

十万词汇英汉词典词库JSON格式,用心整理的一个词库,用JSON格式存储,直接可供JAVASCRIPT编程使用,适合制作在线或离线词典,或者背单词应用,注意只包含简要释义,不包含音标注音,更加精简节省存储空间。

ubuntu 安装星际译王(stardict)

ubuntu  ubuntu 安装星际译王(stardict) 字体大小: 小 中 大StarDict中文名星际译王,是一款开源并且免费的词典,风格和金山词霸类似,可以鼠标取词,词典内容丰富,从英汉词典、英英词典到汉语词典都有;但优于词霸的特点是可以自主选择安装用户词典,而且这些词典颇为丰富:囊括了牛津英汉、牛津英英、朗文英英、柯林斯英英、韦氏词典等这些大部头的

2733

牛津简明英汉词典

牛津简明英汉词典,英语字典的txt版本,可以供程序数据使用。

基于PHP的有道在线英译汉源码.zip

基于PHP的有道在线英译汉源码.zip

在线词典

无论是我们平时浏览网页还是阅读文献都会或多或少遇到几个难懂的英文词汇,这时我们就不免要翻词典了。网上的词典工具大概可以分为两种:离线词典,就是可以不用联网,只要下载安装并运行就可以方便取词翻译;另外一种是在线词典,它需要我们访问一个网站,而后输入要查找的词汇等。现在我们就来总结一下线上线下比较优秀的英汉词典。一、在线词典1、金山爱词霸(http://www.iciba.com/)    这是目前最

lsprolove的小屋 1848

基于PHP实现的小蜜蜂汉译英单词在线查询系统 v1.0_cdanci_工具查询(PHP源代码+html).zip

【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

分享几个学习翻译的方法

1.华山再高,ding有过路。

ls921027的专栏 584

无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

PHP 8.0.3 + Apache 2.4 + MySQL 8.0MySQL 8.0.23 安装下载安装配置环境变量初始化MySQLPHP8.0.3 安装下载安装配置环境变量Apache 2.4 安装下载安装启动 MySQL 8.0.23 安装 下载 到官方网站下载:https://dev.mysql.com/downloads/mysql/ 目前的最新版本是MySQL 8.0.23 在Windows上有两种安装方式,一个是zip压缩文件解压然后配置,另一个是图像化界面安装。 这里选择第一种方法安装:

Kuang Da's Blog 6208

星际译王(stardict)词典安装

安装完星际译王后发现没有词典,使用如下面的步骤安装词典:1、下载词典文件:到http://stardict.sourceforge.net/Dictionaries_zh_CN.php下载词典文件,我选择的是被推荐的cedict-gb dictionary(zh_CN-en)和oxford-gb dictionary(en-zh_CN)牛津现代英汉双解词典。2、把下载到的文件移动到/tmp

coolhty的专栏 1743

新手必看:CiscoPacket Tracer从零搭建局域网(含ARP协议详解)

本文为网络新手提供了一份使用Cisco Packet Tracer从零搭建局域网的详细指南。通过构建基础网络拓扑、配置IP地址,并深入剖析ARP协议的工作原理,帮助读者理解IP地址与MAC地址的映射关系,掌握局域网通信的核心机制。

weixin_29275257的博客 204

linux 星际译王,Linux系统下的星际译王Stardict的安装方法

Linux下星际译王 stardict 的安装“星际译王”是用Gtk2开发的跨平台的国际化的词典软件。它具有“通配符匹配”、“选中区取词”、“模糊查询”等强大功能。本文主要解说一下主程序和词库的安装;一、什么是星际译王 stardict ;“星际译王”是用Gtk2开发的跨平台的国际化的词典软件。它具有“通配符匹配”、“选中区取词”、“模糊查询”等强大功能。所以他不仅仅是汉英和英汉词典;目前星际译王...

weixin_39908616的博客 417

GR00TN1.7国内本地下载+模型下在+hugingface无法连接,本地模型下载

GR00TN1.7

alsj123456的博客 97

YOLO11优化:TGRS2026 CKConv结合C3k2 | 方向特征与跨阶段融合协同,小目标漏检率大幅下降

多尺度适配小目标尺寸变化:在 C3k2 不同阶段配置 CKConv 不同核尺度(浅层小核捕获精细纹理,深层大核聚合上下文),兼顾局部细节与全局感知,提升对舰船、车辆等小尺寸目标及红外热目标的检测鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 564

some english dictionary on Internet

韦氏在线词典  http://www.m-w.com/     金山词霸在线  http://www.iciba.net/     中国日报网站:许多时事新词和中国的特色词汇的英译在这都可找到                  http://language.chinadaily.com.cn/ 柯林斯大词典  http://titania.cobuild.collins.co.u

一个萝卜一个坑 1470

节省人力成本40%!仓储物流AI机器人调度系统实战案例(含路径规划算法与系统架构图)

首先,我们需要定义一个Node类self.x = x # 节点x坐标self.y = y # 节点y坐标self.g = g # 从起点到当前节点的实际成本(g值)self.h = h # 从当前节点到终点的启发式成本(h值)self.f = g + h # 总成本(f值)self.parent = None # 父节点(用于回溯路径)self.task_id = task_id # 任务IDself.priority = priority # 任务优先级(1=最高,5=最低)

小程序开发 950

翻译软件

无论是我们平时浏览网页还是阅读文献都会或多或少遇到几个难懂的英文词汇,这时我们就不免要翻词典了。网上的词典工具大概可以分为两种:离线词典,就是可以不用联网,只要下载安装并运行就可以方便取词翻译;另外一种是在线词典,它需要我们访问...

congnen9588的博客 512

18. 从 SAP Fiori Elements List Report 中的图片显示,谈谈背后的 XML Template 设计机制

至此,Fiori Elements List Report 这个模版里,图片显示的原理,笔者已经从开发人员层面需要定义的注解,和 Fiori Elements 框架层面如何解析这些注解,这两方面做了深入介绍。从本文开始,我们从 Fiori Elements 预制的标准 XML Template 模版的设计,来介绍我们在最终 Fiori Elements 页面看到的产品图标,是如何渲染出来的。但是,List Report 里产品的图标显示,到底是上面这些 XML 文件里的哪一个里定义的呢?

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 607

DeerFlow 系列教程 第三篇 | 核心技术深度剖析:Skills、Memory 与 Context Engineering

摘要化是 Context Engineering 中最关键的组件——它直接决定了长对话的可用性。Skills 技能系统通过渐进式加载的三层模型,在保持系统提示词轻量的同时,支持无限数量的技能扩展。从发现到执行的 10 个生命周期阶段,配合 AI 驱动的安全扫描和多层缓存,构成了一个生产级的技能管理框架。Memory 长期记忆系统通过文件系统持久化、LLM 驱动的信息提取和防抖动异步更新,实现了跨会话的认知持久化。六类事实分类体系和修正信号检测机制,让 Agent 能够从交互中持续学习和改进。

weixin_43674738的博客 280

DevOps初探

前言 DevOps的概念如今常被提及,特别是随着微服务及容器化技术普及至大众视线后。它到底是一个新技术呢,还是新瓶装旧酒的一种包装?能给我们带来怎么样的改变?本文尝试初浅解答一二。 几个问题 什么是DevOps?定义。 为什么会出现此概念,解决了什么问题? 背景。 有什么特点(特性) 云和DevOps是什么关系 微服务和DevOps是什么关系 开发人员,运维如何应对DevOps,各自的职责有何变...

kevin的专栏 2133

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

电子字典php网站源码,字典管理系统

AboutGlossword is the software to create and publish online multilingual dictionary, glossary, or encyclopedia.Glossword - это программа для создания и публикации онлайновых мультиязычных словарей, эн...

weixin_29809497的博客 681

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python 逆向 牛津高阶词典

出于工作、学习需要,我希望构建一个词汇数据库。因此决定用逆向牛津高阶词典的方式来补充数据库。

Dragonlijl的博客 696

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

英汉词典mysql_php+mysql实现英汉查询词典的功能

create database worddb;2.创建表create table words(id int auto_increment primary key,en_word varchar(128) not null,ch_word varchar(256) not null);3.插入数据(只是举个例子,不必太计较单词是不是这个意思,英语很渣,又懒得查)insert into words(e...

weixin_33168127的博客 359

PHP 分词算法:二元分词、是词典分词

1. 二元分词 1<?php2function_tokenizer($text)3{4//UTF8_only5//2-BaseCut6$len=strlen($text);7$mbc='';8$last_mbc='';9$tmp='';10$tokens=array()...

weixin_30678821的博客 247
上一篇: PHP xml_parse_into_struct 函数详细解析
下一篇: php实现简明英汉词典
错_对
博客等级 码龄16年 68粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值