小编Ria*_*Ria的帖子

有一种快速的方法来解析带有正则表达式的大文件吗?

问题:非常非常大的文件我需要逐行解析以从每一行获得3个值.一切正常但解析整个文件需要很长时间.几秒钟内可以做到这一点吗?它的典型时间为1分钟至2分钟.

示例文件大小为148,208KB

我正在使用正则表达式解析每一行:

这是我的c#代码:

private static void ReadTheLines(int max, Responder rp, string inputFile)
{
    List<int> rate = new List<int>();
    double counter = 1;
    try
    {
        using (var sr = new StreamReader(inputFile, Encoding.UTF8, true, 1024))
        {
            string line;
            Console.WriteLine("Reading....");
            while ((line = sr.ReadLine()) != null)
            {
                if (counter <= max)
                {
                    counter++;
                    rate = rp.GetRateLine(line);
                }
                else if (max == 0)
                {
                    counter++;
                    rate = rp.GetRateLine(line);
                }
            }
            rp.GetRate(rate);
            Console.ReadLine();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine("The file could not be …
Run Code Online (Sandbox Code Playgroud)

c# regex algorithm

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

如何解决此模糊调用错误

我在编译时遇到以下错误.如何解决它而不必使用不同的函数名称

private double SomeMethodName(SomeClassType value)
{           
    return 0.0;
}
private double SomeMethodName(ADifferentClassType value)
{
    if (value == null)
    {
        return this.SomeMethodName(null);  //<- error
    }
    return this.SomeMethodName(new SomeClassType());  
}
Run Code Online (Sandbox Code Playgroud)

c# compiler-errors

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

具有正则表达式的命名实体识别:NLTK

我一直在玩NLTK工具包.我经常遇到这个问题并在网上寻找解决方案,但我无处可寻.所以我在这里提出我的问题.

很多时候,NER不会将连续的NNP标记为一个NE.我认为编辑NER以使用RegexpTagger也可以提高NER.

例:

输入:

巴拉克奥巴马是一个伟大的人.

输出:

树('S',[树('PERSON',[('Barack','NNP')]),树('组织',[('奥巴马','NNP')]),('是', 'VBZ'),('a','DT'),('great','JJ'),('person','NN'),('.','.')])

在哪里

输入:

前副总统迪克·切尼告诉保守派电台主持人劳拉·英格拉汉姆,他"很荣幸"在任期间与达斯维德相提并论.

输出:

树('S',[('前','JJ'),('副','NNP'),('总统','NNP'),树('NE',[('Dick',' NNP'),('切尼','NNP')]),('告诉','VBD'),('保守','JJ'),('收音机','NN'),('主持人' ,'NN'),树('NE',[('Laura','NNP'),('Ingraham','NNP')]),('that','IN'),('他', 'PRP'),(' ', ''),('是','VBD'),('荣幸','VBN'),('''',''''),('to','''' ),('be','VB'),('比较','VBN'),('到','TO'),树('NE',[('Darth','NNP'),( 'Vader','NNP')]),('while','IN'),('in','IN'),('office','NN'),('.','.') ])

在这里,副总统/ NNP,总统/ NNP(迪克/ NNP,切尼/ NNP)被正确提取.

所以我认为如果首先使用nltk.ne_chunk然后如果两个连续的树是NNP,那么两者都很有可能引用一个实体.

任何建议都将非常感激.我正在寻找我的方法中的缺陷.

谢谢.

regex nlp named-entity-recognition nltk

10
推荐指数
2
解决办法
9295
查看次数

围攻未知的回应

我正在尝试使用siege实用程序测试我的服务器上的高负载阻力:

siege http://my.server.ru/ -d1 -r10 -c100

Siege会输出很多这样的消息:

HTTP/1.1 200   0.46 secs:   10298 bytes ==> /

但有时会出现如下错误消息:

Error: socket: unable to connect sock.c:220: Connection timed out

或这个:

warning: socket: -598608128 select timed out: Connection timed out

测试后有围攻报告:

Transactions:                949 hits
Availability:                94.90 %
...
Successful transactions:         949
Failed transactions:              51
Longest transaction:            9.87
Shortest transaction:           0.37

在我的服务器上的nginx日志中,只有950条消息,代码为200,响应即可.

"GET / HTTP/1.1" 200 10311 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.68)"

任何人都可以告诉我这意味着什么

Error: socket: unable to connect sock.c:220: Connection timed out
warning: socket: …

benchmarking webserver nginx siege

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

通用Type参数没有装箱或类型参数转换

我有以下帮助方法:

public static T CreateRequest<T>()
    where T : Request, new()
{
    T request = new T();
    // ...
    // Assign default values, etc.
    // ...
    return request;
}
Run Code Online (Sandbox Code Playgroud)

我想从另一个帮助器中的另一个方法内部使用此方法:

public T Map<F, T>(F value, T toValue)
    where T : new()
    where F : new()
{
    if (typeof(T).BaseType.FullName == "MyNamespace.Request")
    {
        toValue = MyExtensions.CreateRequest<T>();
    }
    else
    {
        toValue = new T();
    }
}
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误:

类型'T'不能用作泛型类型或方法'MyExtensions.CreateRequest()'中的类型参数'T'.从'T'到'MyNamespace.Request'没有装箱转换或类型参数转换.

有没有办法转换类型"T",以便CreateRequest将使用它没有问题?

编辑:

我知道我可以做两件事:

  • 放宽对CreateRequest的约束或
  • 收紧地图中的约束.

但我不能做第一个,因为在CreateRequest中我是Request类的用户属性,而我不能做第二个,因为我使用其他类型(不从Request继承)和Map函数.

c# types casting

9
推荐指数
2
解决办法
2万
查看次数

丢失节点的xpath

我有以下xml:

<root>
  <node>
     <tag1/>
     <tag2/>
     <tag3/>
  </node>
  <node>
     <tag1/>
     <tag2/>
     <tag3/>
  </node>
  <node>
     <tag1/>
     <tag3/>
  </node>
</root>
Run Code Online (Sandbox Code Playgroud)

如您所见,在第3个节点中我缺少了tag2.是否有任何xpath可以应用于ac#XmlDocument(通过SelectNodes),它可以返回没有tag2节点的节点?

xml xpath

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

Python正则表达式问号运算符不工作?

import re
str='abc defg'
m1 = re.match(".*(def)?",str)
m2 = re.match(".*(def)",str)
print (m1.group(1),m2.group(1))
Run Code Online (Sandbox Code Playgroud)

以上的输出是:

(没有,'def')

到底是怎么回事?即使使用非贪婪的重复运算符,(def)?也不会匹配可选的捕获组.

python regex capture optional

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

如何使用C#拆分大文本文件(32 GB)

我尝试使用下面的代码将文件拆分为32GB,但我得到了memory exception.

请建议我使用分割文件C#.

string[] splitFile = File.ReadAllLines(@"E:\\JKS\\ImportGenius\\0.txt");

int cycle = 1;
int splitSize = Convert.ToInt32(txtNoOfLines.Text);
var chunk = splitFile.Take(splitSize);
var rem = splitFile.Skip(splitSize);

while (chunk.Take(1).Count() > 0)
{
    string filename = "file" + cycle.ToString() + ".txt";
    using (StreamWriter sw = new StreamWriter(filename))
    {
        foreach (string line in chunk)
        {
    sw.WriteLine(line);
        }
    }
    chunk = rem.Take(splitSize);
    rem = rem.Skip(splitSize);
    cycle++;
}
Run Code Online (Sandbox Code Playgroud)

c#

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

使用离子拉链时压缩失败

我使用的是最新版本的离子拉链版本1.9.1.8.我已经设置了离子拉链的属性 ParallelDeflateThreshold = 0.在过去的两个月里,压缩机制工作得很好.突然间,这停止了工作.压缩线程只是挂起,离子zip只是创建了tmp文件而无法创建zip文件.即使文件很小,我也可以轻松地重现这个问题.

我对这个问题的分析如下

问题在于最新版本的离子拉链,在这种情况下,离子拉链在创建zip文件时被挂起.我们注意到,使用此dll的其他几个用户也在其网站中报告了此类错误.请参考链接.这个问题将通过禁用ParallelThreshold离子zip的属性来解决,但它会延迟大型日志文件的性能,因为它可以在单线程而不是多线程模式下工作.

现在通过将ParallelDeflateThreshold属性设置为默认值来解决问题.但是我找不到这个问题的确切原因.为什么拉链失败突然?没有机器更换.

c# zip zipfile dotnetzip

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

将Auto属性转换为Notification属性(WPF中的MVVM)

有没有办法自动将Auto属性转换为Notify属性?

INotifyPropertyChanged

或者WPF中MVVM的任何其他方式

public string Filename { get; set; }
Run Code Online (Sandbox Code Playgroud)

string _Filename;
public string Filename {
    get { return _Filename; }
    set {
        if (PropertyChanged != null) {
            _Filename = value; 
            PropertyChanged(this, new PropertyChangedEventArgs("Filename"));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf properties mvvm visual-studio

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