如何用 Python 中的 NLTK 对中文进行分析和处理
一、NLTK进行分词用到的函数:nltk.sent_tokenize(text) #对文本按照句子进行分割nltk.word_tokenize(sent) #对句子进行分词二、NLTK进行词性标注用到的函数:nltk.pos_tag(tokens)#tokens是句子分词后的结果,同样是句子级的标注三、NLTK进行命名实体识别(NER)用到的函数:nltk.ne_chunk(tags)#tags是句子词性标注后的结果,同样是句子级上例中,有两个命名实体,一个是Xi,这个应该是PER,被错误识别为GPE了; 另一个事China,被正确识别为GPE。
四、句法分析nltk没有好的parser,推荐使用stanfordparser但是nltk有很好的树类,该类用list实现可以利用stanfordparser的输出构建一棵python的句法树
import nltk text='I have a pen,and I like it' token=nltk.word
展开全部/// /// “更多符号”按下时触发的事件 /// /// /// private void btnMoreSymbol_Click(object sender, EventArgs e) { if (this.contextMenuMoreSymbolInitiated == false) { //string sInstall = ReadRegistry("SOFTWARE\\ESRI\\CoreRuntime"); //string path = System.IO.Path.Combine(sInstall, "Styles"); string sInstall = ""; string path = System.IO.Path.Combine(sInstall, "D:\\Program Files\\ArcGIS\\Engine10.0\\Styles"); //取得菜单项数量 string[] styleNames = System.IO.Directory.GetFiles(path, "*.ServerStyle"); ToolStripMenuItem[] symbolContextMenuItem = new ToolStripMenuItem[styleNames.Length + 1]; //循环添加其它符号菜单项到菜单 for (int i = 0; i 添加contextMenuStripMoreSymbol控件的ItemClicked事件。
单击某一菜单项时响应ItemClicked事件,将选中的ServerStyle文件导入到SymbologyControl中并刷新。
当用户单击“添加符号”菜单项时,弹出打开文件对话框,供用户选择其它的ServerStyle文件。
代码如下:/// /// “更多符号”按钮弹出的菜单项单击事件 /// /// /// private void contextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { ToolStripMenuItem pToolStripMenuItem = (ToolStripMenuItem)e.ClickedItem; //如果单击的是“添加符号” if (pToolStripMenuItem.Name == "AddMoreSymbol") { //弹出打开文件对话框 if (this.openFileDialog.ShowDialog() == DialogResult.OK) { //导入style file到SymbologyControl this.axSymbologyControl.LoadStyleFile(this.openFileDialog.FileName); //刷新axSymbologyControl控件 this.axSymbologyControl.Refresh(); } } else//如果是其它选项 { if (pToolStripMenuItem.Checked == false) { this.axSymbologyControl.LoadStyleFile(pToolStripMenuItem.Name); this.axSymbologyControl.Refresh(); } else { this.axSymbologyControl.RemoveFile(pToolStripMenuItem.Name); this.axSymbologyControl.Refresh(); } } }相信你已经盼这一步很久了吧,按照惯例,按下F5吧!大功造成。
这一讲给大家讲解图层标注的实现方法。
图层标注实现起来并不复杂,本例仅做一个简单示范,只加载AE的样式库,标注选定的字段,旨在抛砖引玉。
更高级的功能,如自定义样式和修改样式,由读者自己实现。
主要思路: 加载图层字段 –> 加载文本样式 -> 设置文本样式。
实现过程: 创建标注设置窗体 -> 创建图层标注的Command -> 添加Command到图层右键菜单。
添加一个Windows窗体,命名为LabelLayerFrm.cs。
添加控件如下:为LabelLayerFrm类添加两个成员变量:public ILayer pLayer;private IStyleGalleryItem pStyleGalleryItem;重载一个构造函数:public LabelLayerFrm(ILayer layer){InitializeComponent();pLayer = layer;添加成员函数ReadRegistry,用于从注册表中读取ArcGIS的安装路径。
/// /// 读取注册表中的制定软件的路径 /// /// /// private string ReadRegistry(string sKey) { //Open the subkey for reading Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sKey, true); if (rk == null) return ""; // Get the data from a specified item in the key. return (string)rk.GetValue("InstallDir"); }添加LabelLayerFrm窗体的Load事件,以加载图层字段到下拉模型,加载文本样式到SymbologyControl控件。
private void LabelLayerFrm_Load(object sender, EventArgs e) { //加载图层字段 ITable pTable = pLayer as ITable; IField pField = null; for (int i = 0; i 添加axSymbologyControl1控件的OnItemSelected事件,以设置选定的样式。
private void axSymbologyControl1_OnItemSelected (object sender, ISymbologyControlEvents_OnItemSelectedEvent e){pStyleGalleryItem = (IStyleGalleryItem)e.styleGalleryItem;添加确定按扭的Click事件,为选定图层中的选定的字段以选定的样式标注。
private void btnOK_Click(object sender, EventArgs e)IGeoFeatureLayer pGeoFeatureLayer = pLayer as IGeoFeatureLayer;pGeoFeatureLayer.AnnotationProperties.Clear();//必须执行,因为里面有一个默认的IBasicOverposterLayerProperties pBasic = new BasicOverposterLayerPropertiesClass();ILabelEngineLayerProperties pLableEngine = new LabelEngineLayerPropertiesClass();ITextSymbol pTextSymbol = new TextSymbolClass();pTextSymbol = (ITextSymbol)pStyleGalleryItem.Item;//你可以在这里修改样式的颜色和字体等属性,本文从略//pTextSymbol.Color//pTextSymbol.Fontstring pLable = "[" + (string)cbbField .SelectedItem + "]";pLableEngine.Expression = pLable;pLableEngine.IsExpressionSimple = true;pBasic.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerShape;pLableEngine.BasicOverposterLayerProperties = pBasic;pLableEngine.Symbol = pTextSymbol;pGeoFeatureLayer.AnnotationProperties.Add(pLableEngine as IAnnotateLayerProperties);pGeoFeatureLayer.DisplayAnnotation = true;至此,标注设置窗体已经完成,如果你编译通不过...
如何用 Python 中的 NLTK 对中文进行分析和处理
一、NLTK进行分词用到的函数:nltk.sent_tokenize(text) #对文本按照句子进行分割nltk.word_tokenize(sent) #对句子进行分词二、NLTK进行词性标注用到的函数:nltk.pos_tag(tokens)#tokens是句子分词后的结果,同样是句子级的标注三、NLTK进行命名实体识别(NER)用到的函数:nltk.ne_chunk(tags)#tags是句子词性标注后的结果,同样是句子级上例中,有两个命名实体,一个是Xi,这个应该是PER,被错误识别为GPE了; 另一个事China,被正确识别为GPE。
四、句法分析nltk没有好的parser,推荐使用stanfordparser但是nltk有很好的树类,该类用list实现可以利用stanfordparser的输出构建一棵python的句法树...
如何删除使用NLTK或者python停用词
1.filtered_words = [w for w in word_list if not w in stopwords.words('english')]2. 我想您有您想要删除停用词字(WORD_LIST)的列表。
你可以这样做:filtered_word_list = word_list[:] #make a copy of the word_listfor word in word_list: # iterate over word_list if word in stopwords.words('english'): filtered_word_list.remove(word) # remove word from filtered_word_list if it is a stopword3. 你也可以做一组差异,例如:list(set(nltk.regexp_tokenize(sentence, pattern, gaps=True)) - set(nltk.corpus.stopwords.words('english')))...
我用python写了如下程序,可是后来最后出了问题。
有谁帮我解决一下...
nextToken 是取得下一个token TT_NUMBER判断当前token是否是数字TT_Word 是否是字符nval是 以数字形式返回当前tokensval是 以String形式返回当前tokenappend()是追加字符到当前字符串末尾。
建议你问前自行查阅java api文档。
转载请注明出处51数据库 » nltk.word tokenize