'How to understand these BPE commands?
'''subword-nmt learn-bpe -s {num_operations} < {train_file} > {codes_file}'''
'''subword-nmt apply-bpe -c {codes_file} < {test_file} > {out_file}'''
These two commands are taken from the BPE github. I'm trying to run it in Google Collab but I do not understand the command variables. The brackets in particular are throwing me off. Do I type my full training file's name in like {"this_is_my_training.train"}? The ">" and "<" are also throwing me off. Are these Bash commands?
Solution 1:[1]
You could pass a Closure to the load method to lazy load them.
$thread = Thread::find(1);
$thread->load(['messages' => function ($message) {
return $message->where('type_id', 3);
}]);
return new JsonResponse($thread);
or do the same using the with method.
$thread = Thread::with(['messages' => function ($message) {
return $message->where('type_id', 3);
}])->find(1);
return new JsonResponse($thread);
Short-hand Closure (PHP version >= 7.4)
$thread = Thread::with(['messages' => fn ($m) => $m->where('type_id', 3)])->find(1);
$thread = Thread::find(1);
$thread->load(['messages' => fn ($m) => $m->where('type_id', 3)]);
Separate relationship
# Thread model
// or whatever name makes sense in your application
public function active_messages()
{
return $this->hasMany(Message::class)->where('type_id', 3);
}
$thread = Thread::with('active_messages')->find(1);
$thread = Thread::find(1);
$thread->load('active_messages');
In terms of queries, all options are the same.
Solution 2:[2]
You can pass a function in which you will perform some check before eager loader message which are related to the thread like this
Thread::with(["messages" => function($query){
$query->where("type_id", 3);
})->find(1);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Yves Kipondo |
