标签: tokenize

为什么C++ strtok()不适合我?

该程序应该通过cin接收输入,对其进行标记,然后输出每个输入以显示它正常工作.它没.

程序编译没有错误,并接受输入,但无法输出任何内容.

我究竟做错了什么?

int main(int argc, char* argv[])
{
  string input_line;

  while(std::cin >> input_line){
    char* pch = (char*)malloc( sizeof( char ) *(input_line.length() +1) );

    char *p = strtok(pch, " ");
    while (p != NULL) {
      printf ("Token: %s\n", p);
      p = strtok(NULL, " ");
    }
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我按照这里的代码示例:http://www.cplusplus.com/reference/clibrary/cstring/strtok/

谢谢.

c++ tokenize strtok

1
推荐指数
2
解决办法
1689
查看次数

对字段之间具有不等数量空格的字符串进行标记

我是tryint来标记文件中的条目.但是line.split("")由于文件之间的空格数不等,我无法使用该选项.我正在从我的文件中复制几行:

"08-09-2010 21:21:46      00:22:7f:a6:9b:69                                 -79"
"08-09-2010 21:21:46      04:4f:aa:b4:49:49                                 -79"
"08-09-2010 21:21:46      04:4f:aa:31:4e:59   tikona 18002090044            -83"
"08-09-2010 21:21:46      00:22:7f:26:9b:69   tikona 18002090044            -74"
"08-09-2010 21:21:46      04:4f:aa:34:0d:c9   tikona 18002090044            -82"
"08-09-2010 21:21:46      04:4f:aa:71:4e:59                                 -85"
"08-09-2010 21:21:46      04:4f:aa:34:21:89   tikona 18002090044            -75"
"08-09-2010 21:21:46      04:4f:aa:34:49:49   tikona 18002090044            -77"
"08-09-2010 21:21:46      04:4f:aa:74:0d:c9                                 -85"
"08-09-2010 21:22:47      18 APs were seen
"
Run Code Online (Sandbox Code Playgroud)

我需要访问第一列(这是一个datetime对象)第二列(00:22...)和最后一列(-79等).我可以轻松访问第一列和第二列,但不能访问最后一列.当我这样做时info=line.spilt(""),由于第三列可能或可能没有条目,我无法确定令牌号.

我如何访问第4列?有没有办法可以使用info[i].contains(" -")

python split tokenize

1
推荐指数
1
解决办法
1076
查看次数

php中的字符串标记生成器

我最近遇到了一个奇怪的问题.
我有以下代码来在php中标记字符串:

$ token = strtok($ string,"#");

while ($token != false)
{
    echo $token;
    $token = strtok("#");

}
Run Code Online (Sandbox Code Playgroud)

我得到的一个简单问题是我正在解析包含许多数字的文件,因此在这种情况下,0将被读作false.因此,解析无法完成.

我该怎么办?

php tokenize

1
推荐指数
1
解决办法
2364
查看次数

C/C++中的快速字符串标记化

我正在开发一个C/C++应用程序(在Visual Studio 2010中),我需要对逗号分隔的字符串进行标记,我希望它尽可能快.目前我正在使用strtok_s.我跑了一些测试strtok_s对比sscanf,它似乎就像strtok_s是快(除非我写了一个可怕的实现:)),但我想知道如果任何人都可以提出一个更快的替代方案.

c c++ string visual-studio-2010 tokenize

1
推荐指数
2
解决办法
7036
查看次数

在Objective-C中对Toknize NSString进行两次Tokenize

我对objective-c没有太多经验,对不起,如果这很明显的话.

我需要的是将NSString分成标记.令牌由空格或另一个符号(不是字母)分隔.问题是我想保留分隔符,除非它们是空格.

例句:"abc,d's,e f." 从这里我想得到:

"a"
"b"
"c"
","
"d"
"'"
"s"
","
"e"
"f"
"."
Run Code Online (Sandbox Code Playgroud)

使用此代码:

NSMutableCharacterSet *separators = [NSMutableCharacterSet punctuationCharacterSet];
[separators formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

NSArray *parse_array = [intext componentsSeparatedByCharactersInSet:separators];
Run Code Online (Sandbox Code Playgroud)

我只收到了这些信件.如果我只是过滤空白和NL我会将这些符号和字母一起使用.我需要的是按顺序执行两个解析(首先是空格和Nl,然后是标点符号),但我真的不知道如何在objective-c中执行它.任何人都可以给我一个提示吗?

谢谢!

objective-c tokenize

1
推荐指数
1
解决办法
1905
查看次数

简单的解析器和生成器

我需要从c ++对象解析并生成一些文本.

语法是:

command #param #param #param
Run Code Online (Sandbox Code Playgroud)

有一组命令,其中一些没有参数等.参数主要是数字.

问题是:我应该使用Boost Spirit来完成这项任务吗?或者只是简单地将每行评估函数标记为从字符串比较命令,读取其他参数并从中创建cpp对象?

如果你建议使用Spirit或任何其他解决方案,如果你能提供一些与我的问题类似的例子,那将是很好的.我已阅读并尝试了Boost Spirit doc中的所有示例.

c++ parsing tokenize boost-spirit

1
推荐指数
1
解决办法
379
查看次数

Solr在查询中处理空格和其他特殊标签,如"OR"

我有一个文本字段,其定义如下:

<fieldType name="myTextField" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.NGramFilterFactory" minGramSize="1"
                        maxGramSize="40"/>

            </analyzer>
            <analyzer type="query">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
                <filter class="solr.LowerCaseFilterFactory"/>
            </analyzer>
        </fieldType>
Run Code Online (Sandbox Code Playgroud)

现在,我有一个包含此文本的字段:"嗨,这是关于solr的问题"

另一个包含此文本的字段:"aaa solr bbb"

当我的查询字符串是"about solr"时,我得到两个字段作为结果,虽然我只想要第一个,因为它是唯一包含所有字符(包括空格)的字符串.这不仅发生在空白区域,还与其他特殊字符如":"一起发生.用括号搜索(关于solr)没有用.

注意:在搜索之前我正在逃避我的字符串:

String s1 = ClientUtils.escapeQueryChars(s);
Run Code Online (Sandbox Code Playgroud)

有什么建议?

solr tokenize

1
推荐指数
1
解决办法
1914
查看次数

word_tokenize TypeError:期望的字符串或缓冲区

在调用时word_tokenize我收到以下错误:

File "C:\Python34\lib\site-packages\nltk\tokenize\punkt.py", line 1322,
    in _slices_from_text for match in
    self._lang_vars.period_context_re().finditer(text):
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)

我有一个大文本文件(1500.txt),我想从中删除停用词.我的代码如下:

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

with open('E:\\Book\\1500.txt', "r", encoding='ISO-8859-1') as File_1500:
    stop_words = set(stopwords.words("english"))
    words = word_tokenize(File_1500)
    filtered_sentence = [w for w in words if not w in stop_words]
    print(filtered_sentence)
Run Code Online (Sandbox Code Playgroud)

python nlp tokenize nltk python-3.x

1
推荐指数
1
解决办法
6956
查看次数

为什么在将字符串标记与另一个字符串进行比较时,我会一直收到此错误?

这个简单的函数用于检查传递的字符串标记是否是运算符,如果它们返回true.

bool isOp(std::string tokens){
    for (int i = 0; i < tokens.size(); i++) {
         if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/"){
             return true;
         }

    }

}
Run Code Online (Sandbox Code Playgroud)

但它不会编译,我得到一个意外的错误,说"ISO C++禁止指针和整数[-fpermissive]之间的比较",我不明白的是,我不是比较一个整数的指针,我将字符串与字符串进行比较?那么为什么我会得到这个错误,我该如何解决呢?

c++ string token tokenize

1
推荐指数
1
解决办法
39
查看次数

在keras标记程序中包含标点符号

有什么方法可以在keras标记程序中包含标点符号?
我想改变一下...

Tomorrow will be cold.
Run Code Online (Sandbox Code Playgroud)

Index-tomorrow, Index-will,...,Index-point
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

tokenize keras

1
推荐指数
1
解决办法
1873
查看次数