我为最近的一个学校项目编写了一个使用指针的简单字符串标记化程序。但是,我的StringTokenizer::Next()方法遇到了问题,该方法在调用时应该返回指向 char 数组中下一个单词的第一个字母的指针。我没有收到编译时错误,但我收到了一个运行时错误,其中指出:
Unhandled exception at 0x012c240f in Project 5.exe: 0xC0000005: Access violation reading location 0x002b0000.
Run Code Online (Sandbox Code Playgroud)
该程序当前标记字符数组,但随后停止并弹出此错误。我有一种感觉,这与NULL我在我的Next()方法中所做的检查有关。
那么我该如何解决这个问题?
另外,如果您发现我可以更有效地或通过更好的练习做的任何事情,请告诉我。
谢谢!!
StringTokenizer.h:
#pragma once
class StringTokenizer
{
public:
StringTokenizer(void);
StringTokenizer(char* const, char);
char* Next(void);
~StringTokenizer(void);
private:
char* pStart;
char* pNextWord;
char delim;
};
Run Code Online (Sandbox Code Playgroud)
StringTokenizer.cpp:
#include "stringtokenizer.h"
#include <iostream>
using namespace std;
StringTokenizer::StringTokenizer(void)
{
pStart = NULL;
pNextWord = NULL;
delim = 'n';
}
StringTokenizer::StringTokenizer(char* const pArray, char d)
{
pStart = pArray;
delim = d; …Run Code Online (Sandbox Code Playgroud) 我正在用StringTokenizer字符串标记一个字符串,$$但是如果我的字符串是这样的$1$dga74话,那么它首先将它标记化$.任何人都可以告诉我为什么会发生这种情况,我该怎么做才能解决这个问题.
String str="/getCPage.asp?m=total&sub=$1$dga74$$/getEpage.asp?m=tatal&sub=0";
StringTokenizer tok=new StringTokenizer(str,"$$")
String url1=tok.nextToken();
String url2=tok.nextToken();
Run Code Online (Sandbox Code Playgroud) 我需要你的帮助.我有一个变量名$ thetextstring,其中包含9个单词,分别用LINE BREAKS和SPACES,我是从html表单中获取的.
$thetextstring = "alpha bravo charlie
delta echo
foxtrot
golf hotel india" ;
Run Code Online (Sandbox Code Playgroud)
我怎样才能将php字符串$ thetextstring标记为删除行和空格并将9个单词放入数组中
$thetextarray[0] = "alpha";
$thetextarray[1] = "bravo";
$thetextarray[2] = "charlie";
$thetextarray[3] = "delta";
$thetextarray[4] = "echo";
$thetextarray[5] = "foxtrot";
$thetextarray[6] = "golf";
$thetextarray[7] = "hotel";
$thetextarray[8] = "india";
Run Code Online (Sandbox Code Playgroud)
我需要PHP代码来处理这个问题.非常感谢你提前!
我对PLY很陌生,对 Python 也只是个初学者。我正在尝试使用PLY-3.4和 python 2.7 来学习它。请参阅下面的代码。我正在尝试创建一个令牌 QTAG,它是一个由零个或多个空格组成的字符串,后跟“Q”或“q”,后跟“.”。以及一个正整数和一个或多个空格。例如,有效的 QTAG 是
"Q.11 "
" Q.12 "
"q.13 "
'''
Q.14
'''
Run Code Online (Sandbox Code Playgroud)
无效的是
"asdf Q.15 "
"Q. 15 "
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import ply.lex as lex
class LqbLexer:
# List of token names. This is always required
tokens = [
'QTAG',
'INT'
]
# Regular expression rules for simple tokens
def t_QTAG(self,t):
r'^[ \t]*[Qq]\.[0-9]+\s+'
t.value = int(t.value.strip()[2:])
return t
# A regular expression rule with some action code
# Note addition …Run Code Online (Sandbox Code Playgroud) 我尝试split the string使用特殊字符'\'但它不起作用。
str = 'c:\images\jhjh.jpg';
result = str.split('\');
Run Code Online (Sandbox Code Playgroud)
帮我解决问题。提前致谢
我知道发生这个 valgrind 错误是因为我试图使用未初始化的东西。下面的代码是导致此错误的代码。它正在做的是尝试读取 Racket 代码并获取每个符号,例如 + 或define。(标记化)我不希望您彻底理解代码,因为还有很多其他代码可以理解它在做什么。但是,如果您能就我在该行收到此错误的原因提出您的想法,我将不胜感激,symbol = strcat(symbol, newsymbol);
char* newsymbol = talloc(sizeof(char)*2);
*newsymbol = charRead;
newsymbol[1] = '\0';
symbol = strcat(symbol, newsymbol);
Run Code Online (Sandbox Code Playgroud) 我需要用来nltk.sent_tokenize()从大文本文件中提取句子。文件大小从 1MB 到 400MB 不等,因此不可能完全加载文件,因为内存限制,我认为不可能nltk.sent_tokenize()逐行使用和读取文件。
你建议怎么做这个任务?
我比较新,NLP所以请温柔。我有特朗普上任以来推文的完整列表,我正在对文本进行标记以分析内容。
我使用的是TweetTokenizer来自nltk于Python库,我试图让一切符号化,除了数字和标点符号。问题是我的代码删除了除一个之外的所有令牌。
我曾尝试使用 . isalpha()方法,但这不起作用,我认为这对于由字母表组成的字符串应该只适用于 True。
#Create a content from the tweets
text= non_re['text']
#Make all text in lowercase
low_txt= [l.lower() for l in text]
#Iteratively tokenize the tweets
TokTweet= TweetTokenizer()
tokens= [TokTweet.tokenize(t) for t in low_txt
if t.isalpha()]
Run Code Online (Sandbox Code Playgroud)
我的输出只是一个标记。如果我删除 ift.isalpha()语句,那么我会得到所有标记,包括数字和标点符号,这表明isalpha()过度修剪是罪魁祸首。
我想要的是一种从没有标点符号和数字的推文文本中获取标记的方法。谢谢你的帮助!
我在这里遇到了一个问题。我将使用 spacy 的单词分词器。但是我有一些限制,例如我的标记器不会拆分包含撇号 (') 的单词。
例子:
输入字符串:“我不能这样做” 当前输出:["I","ca","n't","do","this"] 预期输出:["I","can't","do","this"]
我的尝试:
doc = nlp(sent)
position = [token.i for token in doc if token.i!=0 and "'" in token.text]
with doc.retokenize() as retokenizer:
for pos in position:
retokenizer.merge(doc[pos-1:pos+1])
for token in doc:
print(token.text)
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我得到了预期的输出。但是不知道这个方法对不对?或者有没有更好的方法来进行重新标记化?
我有一个字符串:
var metadata = "form=string=a||list=string=a|b|c||isTrue=boolean=true";
Run Code Online (Sandbox Code Playgroud)
我想将其修剪为:
meta[0] = "form=string=a";
meta[1] = "list=string=a|b|c";
meta[2] = "isTrue=boolean=true";
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 Javascript 和 Java 中做到这一点?
大家好我正面临一个问题,因为我无法想出一个方法,它将采用一个字符串(实际上是日期/月/年形式的日期)作为参数,并在矢量或数组中对其进行标记.有人可以帮忙吗?我知道有很多关于此的主题,但我找不到任何不包括boost的解决方案(我不想使用).