有没有办法找到仍然有意义且至少包含一个主语,动词和谓词/宾语的句子的所有子句?
例如,如果我们有一句话,"我将在下个月在奥斯汀的SXSW举办关于NLP的研讨会".我们可以从这句话中提取以下有意义的子句:"我要去做一个研讨会","我要做一个关于NLP的研讨会","我将在SXSW做一个关于NLP的研讨会","我打算在SXSW做一个研讨会","我将在奥斯汀做一个研讨会","我将在下个月做一个关于NLP的研讨会",等等.
请注意,此处没有推断的句子(例如"下个月将在SXSW举行NLP研讨会".虽然这是真的,但我们不需要将此作为此问题的一部分.).所有生成的句子都是给定句子的一部分.
我们如何解决这个问题呢?我正在考虑创建带注释的训练数据,该训练数据具有训练数据集中每个句子的一组合法子句子.然后编写一些监督学习算法来生成模型.
我是NLP和机器学习的新手,所以如果你们能提出一些方法来解决这个问题,那将会很棒.
grammar parsing nlp artificial-intelligence machine-learning
说而不是文件我有小树,我需要存储在Lucene索引中.我该怎么做呢?
树中的示例节点:
class Node
{
String data;
String type;
List<Node> children;
}
Run Code Online (Sandbox Code Playgroud)
在上面的节点中,"data"成员变量是一个空格分隔的单词串,因此需要全文可搜索."type"成员变量只是一个单词.
搜索查询将是树本身,并且将搜索每个节点中的数据和类型以及用于匹配的树的结构.在匹配子节点之前,查询必须首先匹配父节点数据和类型.可以接受数据值的近似匹配.
索引此类数据的最佳方法是什么?如果Lucene不直接支持索引这些数据,那么这可以由Solr或Elasticsearch完成吗?
我快速浏览了neo4j,但似乎在db中存储了整个图形,而不是大型集合(比如数十亿或数万亿)的小树结构.或者我的理解是错的?
另外,基于非Lucene的NoSQL解决方案是否更适合这种情况?
是否可以在GDB中设置条件断点,其中条件表达式包含任意类类型的对象?
我需要在函数内设置断点,条件将检查对象的成员字符串变量是否等于"foo".所以,像:
condition 1 myObject->myStringVar == "foo"
Run Code Online (Sandbox Code Playgroud)
但它不起作用.GDB是否只允许基本和char*类型的条件断点?有什么办法可以在非原始类型上设置条件断点吗?
我有一个包含一堆句子的文本文件.句子包含空格(空格,制表符,新行)以分隔出由字母和/或数字组成的单词.我想找到单词"123"或"-123"并在数字开始前插入一个点(.).因此,所有出现的"123"和"-123"都将转换为".123"和"-123".
我试着用以下方法:
$line =~ s/(\s+-*123\s+)/getNewWord($1)/ge
Run Code Online (Sandbox Code Playgroud)
其中$ line包含从文件中读取的行,而函数getNewWord将把点(.)放在匹配的单词中的适当位置.
但它不适用于有两个连续"123"的情况,如"123 123".当第一个"123"被".123"替换时,该单词后面的空格已经匹配,第二个"123"不匹配,因为正则表达式引擎无法将前一个空格与该单词匹配.
谁能帮我这个?谢谢!
说,我有一个像这样的shell脚本:
function getDir
{
echo "DirName"
}
Run Code Online (Sandbox Code Playgroud)
我想在Perl脚本中使用该函数:
`source utils.sh`;
my $dir_name = `getDir`;
print $dir_name;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.任何人都可以建议我如何完成这项工作?基本上我需要从shell函数获取返回值到Perl脚本.