行为准则
假设现在我们处于写作业的状态而且我们以前并没有尝试过写作业时看电视, 所以现在我们有两种选择 , 1, 继续写作业, 2, 跑去看电视. 因为以前没有被罚过, 所以我选看电视, 然后现在的状态变成了看电视, 我又选了 继续看电视, 接着我还是看电视, 最后爸妈回家, 发现我没写完作业就去看电视了, 狠狠地惩罚了我一次, 我也深刻地记下了这一次经历, 并在我的脑海中将 “没写完作业就看电视” 这种行为更改为负面行为, Q learning 根据很多这样的经历是如何来决策的吧.
基于词向量的实体链接方法
Journal of Data Acquisition and Processing Vol.32 , No.3 ,May 2017 , pp.604-611
摘要
实体链接任务主要包括命名实体识别、查询扩展、候选实体选择、特征抽取和排序,本文针对查询词的扩展,提出一种基于词向量的扩展方法,利用连续词袋(CBOW)模型训练语料中词语的词向量,然后将距离查询词近的词作为扩展词。词向量从语料中挖掘出词与词之间的语义相关性是对基于规则的查询扩展方法的补充,以此来召回候选实体。在特征抽取时,把文档之间的潜在狄利克雷分布(LDA)的主题相似性作为特征之一。在计算文档相似性时,不再以高频词作为向量的维度,而是以基于词向量的相关词作为向量维度,由此得到文档的语义相似特征。最后利用基于单文档方法的排序学习模型把查询词链接到相应的候选实体。实验结果 $F1$ 值达到0.71
【目的】:已有线路推荐研究较少考虑地名实体之间的次序,为此设计了基于城市地名实体双向链接分析的路线推荐方法
【方法】:以特定场景下不同地名实体形成的有向加权网络为基础数据源,循环计算不同轨迹链隶属于各个地名实体对应理想集的链入和链出值,进而在通过布尔逻辑和位置限定运算符表达用户查询需求的基础之上,融合模糊检索算法,实现用户查询与轨迹链的精准匹配。
【结果】:这篇提出的算法推荐准确率为0.75,高于TF-IDF推荐算法和不考虑地名实体次序的推荐算法,但召回率无优势,随着加权网络规模的增大,推荐准确率与召回率呈现明显的反向关系。
【局限】:未考虑对象属性数据对推荐结果的影响。
【结论】:本文方法融合了基于统计分析与语义分析的推荐算法,可快速生成备选路线及推荐指数。
Description:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
Discuss:
1.暴力法:
时间复杂度: O(n^2)
空间复杂度: O(1)
class Solution {
public int[] twoSum(int[] nums, int target) {
int res[] = {0,0};
for (int i = 0;i<nums.length;++i){
for (int j = i+1;j<nums.length;++j){
if (target == (nums[i] + nums[j])){
res[0] = i;
res[1] = j;
}
}
}
return res;
}
}
class Solution {
public int[] twoSum(int[] nums, int target) {
for (int i = 0;i<nums.length;++i){
for (int j = i+1;j<nums.length;++j){
if (target == (nums[i] + nums[j]))
return new int[]{i,j};
}
}
return null;
}
}
2.Hash表
时间复杂度: O(n)
空间复杂度: O(n)
思路:利用哈希表将数组中的值依次存入,并且在数组遍历过程中找到另一个值
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer map = new HashMap< ();
for (int i = 0; i < nums.length; i++){
if(map.containsKey(target - nums[i])){
int[] r = new int[]{map.get(target - nums[i]), i} ;
return r;
}else{
map.put(nums[i], i);
}
}
return null;
}
}
Siamese Network 是一种神经网络的框架,而不是具体的某种网络,Siamese Network用于评估两个输入样本的相似度。网络的框架如下图所示