nlp python从代码中清除文本

nlp python从代码中清除文本,python,regex,nlp,nltk,data-cleaning,Python,Regex,Nlp,Nltk,Data Cleaning,我需要从无用代码或异常中清除大量文本文件,以便进行一些文本分析,例如: 起始文本:7001 添加工作集 在该工作集中搜索某些内容 移除工作集 通过上下文菜单搜索 ==> 日志:2001年12月17日星期一17:23:54 GMT+01:00 4 org.eclipse.ui 0 java.util.ConcurrentModificationException java.util.ConcurrentModificationException at java.util.AbstractL

我需要从无用代码或异常中清除大量文本文件,以便进行一些文本分析,例如:

起始文本:7001
  • 添加工作集
  • 在该工作集中搜索某些内容
  • 移除工作集
  • 通过上下文菜单搜索
  • ==>

    日志:2001年12月17日星期一17:23:54 GMT+01:00 4 org.eclipse.ui 0 java.util.ConcurrentModificationException

    java.util.ConcurrentModificationException
        at java.util.AbstractList$Itr.checkForComodification(AbstractList.java(Compiled
    Code))
        at java.util.AbstractList$Itr.next(AbstractList.java(Compiled Code))
        at
    
    org.eclipse.jdt.internal.ui.search.JavaSearchSubGroup.fill(JavaSearchSubGroup.java:30)
        at org.eclipse.jdt.internal.ui.search.JavaSearchGroup.fill(JavaSearchGroup.java:51)
        at org.eclipse.jdt.internal.ui.actions.ContextMenuGroup.add(ContextMenuGroup.java:25)
        at
    org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.menuAboutToShow(PackageExplorerPart.java:498)
        at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:220)
        at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:253)
        at org.eclipse.jface.action.MenuManager.access$0(MenuManager.java:250)
        at org.eclipse.jface.action.MenuManager$1.menuShown(MenuManager.java:280)
    

    如果您使用python,则可以删除==>代码和之间的文本。如果您使用python,则可以删除==>代码和之间的文本。这是一个非常重要的问题,没有预定义的解决方案,因为这取决于您的数据。然而,有不同的方法将文本(自然语言,NL)与代码分开,但不能保证它们在100%的时间内都能工作

    以下是我的建议:

    首先,您可以检查是否使用某种格式将代码与NL(like)分开,并编译适当的正则表达式来检测代码。我使用以下正则表达式来清理从GitHub提取的问题:

    leading_whitespace_pattern = re.compile(r"^( {4,}|\t( |\t)*).*?$", re.MULTILINE)
    backtick_pattern = re.compile(r"```.*?```", re.DOTALL)
    
    以下是从Redmine中提取的更多问题:

    code_pattern = re.compile('<pre>.*?</pre>', re.DOTALL)
    at_pattern = re.compile(r"@.*?@")
    
    code\u pattern=re.compile('.*?',re.DOTALL)
    at_pattern=re.compile(r“@.*?@”)
    
    如果这对你不起作用,事情就会变得棘手。您要么必须开发更多与数据中可能出现的所有代码行相匹配的正则表达式,要么必须使用更高级的方法。Baccelli等人对此课题进行了大量研究,并使用了不同的技术,取得了良好的效果。但是,我不确定他们是否公布了实施方案:

  • A.Baccelli,M.D'Ambros和M.Lanza,“从电子邮件中提取源代码”,第18届IEEE国际程序理解会议(ICPC 2010),2010年,第24-33页
  • A.Baccelli,A.Cleve,M.Lanza和A.Mocci,“使用岛解析从自然语言文档中提取结构化数据”,第26届IEEE/ACM自动软件工程国际会议(ASE 2011),2011年,第476-479页
  • N.Bettenburg,B.Adams,A.E.Hassan和M.Smidt,“揭示非结构化数据中技术工件的轻量级方法”,载于第19届IEEE国际程序理解会议(ICPC 2011),2011年,第185-188页

  • 祝你好运

    这是一个非常重要的问题,没有预定义的解决方案,因为它取决于您的数据。然而,有不同的方法将文本(自然语言,NL)与代码分开,但不能保证它们在100%的时间内都能工作

    以下是我的建议:

    首先,您可以检查是否使用某种格式将代码与NL(like)分开,并编译适当的正则表达式来检测代码。我使用以下正则表达式来清理从GitHub提取的问题:

    leading_whitespace_pattern = re.compile(r"^( {4,}|\t( |\t)*).*?$", re.MULTILINE)
    backtick_pattern = re.compile(r"```.*?```", re.DOTALL)
    
    以下是从Redmine中提取的更多问题:

    code_pattern = re.compile('<pre>.*?</pre>', re.DOTALL)
    at_pattern = re.compile(r"@.*?@")
    
    code\u pattern=re.compile('.*?',re.DOTALL)
    at_pattern=re.compile(r“@.*?@”)
    
    如果这对你不起作用,事情就会变得棘手。您要么必须开发更多与数据中可能出现的所有代码行相匹配的正则表达式,要么必须使用更高级的方法。Baccelli等人对此课题进行了大量研究,并使用了不同的技术,取得了良好的效果。但是,我不确定他们是否公布了实施方案:

  • A.Baccelli,M.D'Ambros和M.Lanza,“从电子邮件中提取源代码”,第18届IEEE国际程序理解会议(ICPC 2010),2010年,第24-33页
  • A.Baccelli,A.Cleve,M.Lanza和A.Mocci,“使用岛解析从自然语言文档中提取结构化数据”,第26届IEEE/ACM自动软件工程国际会议(ASE 2011),2011年,第476-479页
  • N.Bettenburg,B.Adams,A.E.Hassan和M.Smidt,“揭示非结构化数据中技术工件的轻量级方法”,载于第19届IEEE国际程序理解会议(ICPC 2011),2011年,第185-188页

  • 祝你好运

    箭头是否确实在文本文件中?不,这不是python问题还是java问题?我认为这与
    nltk
    too=)没有任何工具可以帮助我通过代码清理这些文本吗?另外,在pythonAre中,箭头
    ==>
    实际上不在文本文件中?不,这不是python问题还是java问题?我认为这与
    nltk
    too=)没有任何工具可以帮助我通过代码清理这些文本吗?在pythonthanks中也没有,但是很抱歉,文本中没有我想要消除的箭头!这只是为了显示我想删除的内容…哦,好吧,那么你的文件怎么样了。您可能需要进行多次检查以清理文本文件。你能发布一个示例文件吗。然后我可以建议我的文件在“开始文本:numberOfReport”和“结束文本:numberOfReport”之间。我在问题中包括了两个例子,据我所知,没有工具能达到您的期望。您必须手动删除子字符串,如从“Log:”开始到“end text”(您的第一个文件)。或者从“导入”到“结束文本”(您的第二个文件)。这样,你必须考虑所有可能的情况。谢谢,但是抱歉,没有文字中的箭头,我想消除!这只是为了显示我想删除的内容…哦,好吧,那么你的文件怎么样了。您可能需要进行多次检查以清理文本文件。你能发布一个示例文件吗。然后我可以建议我的文件在“开始文本:numberOfReport”和“结束文本:numberOfReport”之间。我在问题中包括了两个例子,据我所知,没有工具能达到您的期望。您必须手动删除子字符串,如从“Log:”开始到“end text”(您的第一个文件)。或者从“导入”到“结束文本”(您的第二个文件)。你必须考虑所有可能的情况。