捕获 R tryCatch() 越界异常以忽略异常
catch R tryCatch() out of bounds exception in order to ignore execption
问题:
R tryCatch() 需要处理已知错误。
我正在使用词向量矩阵 运行 向量词位置。我正在寻求添加一个 R tryCatch() 来处理或捕获此下标越界。这是单词搜索的预期行为。
在 R 中捕获、忽略异常的确切方法是什么?我应该使用什么异常代码来捕获越界?
例如:
word1 = 'This'
word2 = 'Happy'
在单词向量内的上下文搜索中,预计此组合不会匹配。所以下标越界说明这个匹配项不存在
代码:
'''
word_vectors[word1, , drop=FALSE] + word_vectors[word2, , drop=FALSE]
'''
错误信息:
'''
run_glove_search(word1, word2, word_vectors)
Error in word_vectors[word1, , drop = FALSE] : subscript out of bounds
> View(word_vectors)
'''
错误是由于下标越界造成的,这在不匹配的单词组合上是预期的。因此,这是意料之中的行为。
数据示例:
注:word矩阵是75800的大矩阵,所以我只展示1行统计例子
'''
This 0.175438308 0.1229126933 -0.792327086 -0.698233553 0.407953490 0.362040523 0.258780885 0.352198675 -0.170637061 -0.512016098 0.408881291 -0.0866425339 0.0510299517 -0.150036589 0.002336813 0.390699917 -0.635815296 -0.295312958
'''
代码解决:
TryCatch() with error = function(e) 并且什么也不做,因为我知道并期望会发生这个错误,所以我可以将 NULL 分配给 function(e) 的 e 因为我不需要任何错误消息。
tryCatch({
gws <- word_vectors[word1, , drop=FALSE] + word_vectors[word2, , drop=FALSE]
cos_sim = sim2(x = word_vectors, y = gws, method = "cosine", norm = "l2")
head(sort(cos_sim[,1], decreasing = TRUE), 7)
},
error = function(e){e=NULL}
)
问题:
R tryCatch() 需要处理已知错误。
我正在使用词向量矩阵 运行 向量词位置。我正在寻求添加一个 R tryCatch() 来处理或捕获此下标越界。这是单词搜索的预期行为。 在 R 中捕获、忽略异常的确切方法是什么?我应该使用什么异常代码来捕获越界?
例如:
word1 = 'This'
word2 = 'Happy'
在单词向量内的上下文搜索中,预计此组合不会匹配。所以下标越界说明这个匹配项不存在
代码:
'''
word_vectors[word1, , drop=FALSE] + word_vectors[word2, , drop=FALSE]
'''
错误信息:
'''
run_glove_search(word1, word2, word_vectors)
Error in word_vectors[word1, , drop = FALSE] : subscript out of bounds
> View(word_vectors)
'''
错误是由于下标越界造成的,这在不匹配的单词组合上是预期的。因此,这是意料之中的行为。
数据示例: 注:word矩阵是75800的大矩阵,所以我只展示1行统计例子
'''
This 0.175438308 0.1229126933 -0.792327086 -0.698233553 0.407953490 0.362040523 0.258780885 0.352198675 -0.170637061 -0.512016098 0.408881291 -0.0866425339 0.0510299517 -0.150036589 0.002336813 0.390699917 -0.635815296 -0.295312958
'''
代码解决: TryCatch() with error = function(e) 并且什么也不做,因为我知道并期望会发生这个错误,所以我可以将 NULL 分配给 function(e) 的 e 因为我不需要任何错误消息。
tryCatch({
gws <- word_vectors[word1, , drop=FALSE] + word_vectors[word2, , drop=FALSE]
cos_sim = sim2(x = word_vectors, y = gws, method = "cosine", norm = "l2")
head(sort(cos_sim[,1], decreasing = TRUE), 7)
},
error = function(e){e=NULL}
)