I am a beginner  to use CRF and Semi-CRF. I am attracted by the fancy semi-crf model. I download the CRF package from http://crf.sourceforge.net/
currently I can run the demo of "segment.java". I have the following questions:
For the train/test data format, my understanding is below:
for the train/test data, X denotes the observation and Y denotes the label. In "us50.train.tagged", each word corresponds to Xi which is one node of sequence X={X1,X2,...,Xn} and the number behind "|" is the label. 
Therefore, for the input X, each Xi is only one dimension.
But in my problem, each Xi is a vector. let us assume Xi is m dimention, and X has n Xi, my input is a matrix with m*n size.Now I am confused how to input my train/tet data into semi-crf model.
Question 2:
 When I run the segment.java, I change the model type to 'semi-markov', but it stop when iteration gets 18. the model works quite worse than the one with crf model.
Can someone show me how to get a well-performed semi-crf?
Thanks a lot!